Study Hard35 Caused by: java.util.MissingResourceException: Can't find bundle for base name application, locale ko_KR [ResourceBundle.getBundle("{path}")] Caused by: java.util.MissingResourceException: Can't find bundle for base name application, locale ko_KRat java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)at java.util.ResourceBundle.getBundle(ResourceBundle.java:782)at gov.mfds.lms_client.WebApiService.(WebApiService.java:24) MissingResourceExce.. 2024. 8. 14. [스프링시큐리티] 로그인 실패 메세지 구현 AuthenticationFailureHandler를 상속받아서 Handler를 만들어준다. 해당 에러에 따른 메세지를 request 스코프에 담아주고 로그인 페이지로 포워드 해준다. 포워드 받는로그인 페이지에 적당한 위치에 el으로 표시해준다. security 설정 xml파일 수정 우선 bean 등록을 진행하고 form-login 설정에 해당 bean을 등록한다. 결과 로그인 실패시 로그인 페이지로 dispatch되면서 에러메세지가 보여진다. 2023. 7. 13. [스프링시큐리티] 로그인하고 사용자가 요청한 페이지로 이동시키기 권한이 필요한 페이지의 URL로 비로그인 상태에서 바로 접속하게 되면 먼저 Filter에 의해서 스프링시큐리티 FilterChain에 로직에 의하여 로그인 페이지로 이동하게된다. 이 로직 이후 처음 사용자가 요청했던 페이지로 이동시켜보자. 개발할때 매번 로그인하고 메인화면을 봐야하는 팀원들을 위함이다. 우선은 LoginSuccessHandler에서 설정을 해준다. 스프링 자체적으로 기존에 요청한 URI을 저장한 객체가 있다. public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOExcept.. 2023. 7. 13. 스프링-시큐리티 session.invalidate() 하면 403에러 뜨는 이유 로그인이 되지않은 상태에서는 세션을 invalidate() 를 사용해도 상관없다고 생각했지만 스프링-시큐리티를 적용한 후, 프레임워크는 지속적으로 jessionid를 확인해서 invalidate() 이후 jsession이 갱신된 상태에서 post요청을 보내게되면 403에러가 발생되게 된다. 다음과 같은 화면을 보여주는 컨트롤러는 값을 가져오고 서버에 있는 데이터값을 지우기 위해 세션 invalidate(); 를 해주었다. invalidate()후 클라이언트가 j세션id를 새로 받게되고 "회원가입 버튼"을 눌러 post요청을 날리게되면 에러가 발생한다. 프레임워크를 쓴다면 세션을 직접관리하지말고 프레임워크에 전적으로 맡겨야한다. 세션을 관리할땐 아래 문서를 읽어보고 진행하자. https://www.java.. 2023. 7. 13. Mybatis resultType="hashmap"일때 NULL 값 받아오기 마이바티스 기본설정에서 hashMap으로 result 값을 받게되면 null값일 시 해당 컬럼 key가 생성되지 않는다. key를 생성하려면 mybatis config 파일에서 설정해준다. 정상적으로 null값이 map에 포함된다. 2023. 7. 11. RequestParam 어노테이션의 양면성 프로젝트를 편하게 하고자 jQuery의 serialize()를 dosc를 읽어보았다. https://api.jquery.com/serialize/ 2023. 7. 11. [환경설정] SpringLegacy에 log4j -> log4j2 로그 적용 (오라클DB) 개발을 하면서 db에서 가져오는 값을 한번에 보는 방법에 대해 며칠헤매다가 적용하지 못햇었다가 드디어 방법을 찾았다. 이 설정 하나 만으로도 디버깅하는 시간을 꽤나 줄여준다. 인터넷에 이 설정을 찾아도 적용되지 않는 이유는 log4j2 설정 뿐만 아니라 jdbc설정도 추가로 해줘야 하기 때문이다. 다음은 log4j 설정에서 log4j2 로 설정으로 변경하고 table로 보는설정이다. 1. Log4j2 Maven Dependency 확인 - 우선 Maven pom.xml 설정을 확인한다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 - 없으면 dependency 를 추가 시켜준다. 2. log4j2.properties 생성 - 기존 log4j.xml에 위치에.. 2023. 7. 10. [기능구현] Tiles 구성하기 Tiles는 SI에서 많이 사용된다기에 Tiles라이브러리 사용을 정했다. 개인적으로는 10년전부터 php의 include를 많이 사용했기에 include가 편하지만 팀원들도 다같이 알야아 하기에 경로만 지정하면 해당 메뉴 템플릿이 사용될 수 있도록 구현하였다. 그렇게 하려면 경로통일이 필수이다. 노션을 통해서 팀원들에게 메뉴에 따라 어떤 경로를 사용하면 되는지 전파하였다. 2023. 7. 10. [스프링MVC] 이클립스 Base패키지 명 변경하기 기업 연계시간에 패키지명 가이드라인을 새로 알려주셨다. 하지만 기존에 존재하는 구조에서 변경하는데 어려움이 있었다. 패키지명 가이드라인 - Base 패키지명은 domain명으로. - BasePackage 뒤에는 프로젝트명 - 프로젝트 명 뒤에는 기능별로 구성 - 기능별 패키지 안에 service/web(controller)/dto(VO)/mapper 구성 외부 강사선생님께서 우리조에 요청한것은 base패키지명을 변경할 것을 요청하셨다. team.tttt로 원래 하려고했으나 이클립스가 pakage는 무조건 3level 만 지원하기에 team.tttt.webapp으로 변경한것이 화근이었다. 사실 프로젝트 초반에 변경하려고했었으나 변경하다 maven프로젝트나 servlet설정같이 프로젝트 자동생성된 패키지 경.. 2023. 7. 8. 이전 1 2 3 4 다음