Spring Securty 5.7.x 부터 deprecated 된 WebSecurityConfigureAdapter 의 대체 방법 및 람다식 적용, ignore 적용에 관련된 좋은 내용이 있어서 링크함. https://velog.io/@csh0034/Spring-Security-Config-Refactoring [Spring Security] Config Refactoring WebSecurityConfigurerAdapter Deprecated, Lambda DSL 적용, Resource Filter Chain 설정 velog.io authorizeRequests() 를 대체하는 authorizeHttpRequests() 에 대한 내용 https://docs.spring.io/spring-securit..
핵심은 ServletFilter를 이용하여 ContentCachingRequestWrapper와 ContentCachingResponseWrapper 를 사용하고, HandlerInterceptorAdapter를 구현하여 로깅처리하는 것. httpServletRequest의 getInputStream()은 한번 밖에 사용 못하므로, ContentCachingRequestWrapper를 이용해야 함. 그렇지 않으면, (java.lang.IllegalStateException: getReader() has already been called for this request) 에러가 남. 참고사이트. https://dlsrb6342.github.io/2019/07/02/Spring-Content-Logging/..
참고 : https://java.ihoney.pe.kr/472 참고 : https://eblo.tistory.com/56 # application.properties 값 조회 @ 뒤에 빈(Bean) 이름을 사용하면 그 빈에 접근할 수 있다. 프로파일 환경에 따라 표시를 하려면 This is the production profile 또는 This is the production profile # 시스템 환경변수 조회 ${@systemProperties['property.key']} # 메세지 조회 # 세션정보 조회 # 파라미터 조회 # PathVariable 조회 * Spring 컨트롤러에 Request Mapping에 선언되어 있고 @PathVariable이 있어야만 정보를 가져올 수 있다.
참고: supawer0728.github.io/2018/04/04/spring-filter-interceptor/ (Spring)Filter와 Interceptor의 차이 서론Spring을 익힌지 얼마 되지 않았을 때, 회원 인증 로직을 구현할 일이 생겼었다. 그 인증을 구현하기 위해 Filter와 Interceptor를 조사했었다. 하지만 Filter와 Interceptor를 어떤 경우에 써야 좋은지 � supawer0728.github.io Spring request life cycle
[REQUIRED_NEW 주의사항] spring aop는 proxy기반이므로 동일 빈의 다른 required_new 메소드를 호출할 때는 새로운 트랜잭션이 생성되지 않는다. 즉, beanA.methodA() requied 메소드에서 beanA.methodB() requied_new 메소드를 호출한다고 해도 새로운 트랜잭션으로 진행되지 않음. 따라서, 다른 bean에 requied_new 메소드를 만들어 호출해야 됨. 참고 : https://stackoverflow.com/questions/28480480/propagation-requires-new-does-not-create-a-new-transaction-in-spring-with-jpa Propagation.REQUIRES_NEW does not c..
이 글인 spring.io 의 Tutorial (https://spring.io/guides/tutorials/spring-boot-oauth2/) 을 간단하게 번역, 정리한 글입니다. Spring Boot 기반에서 Spring OAuth 를 사용하여 페이스북과 같은 소셜 로그인을 처리하는 간단한 샘플입니다.클라이언트 구현에는 AngularJS 및 WebJar 가 사용되었습니다. 프로젝트 생성STS에서 New Spring Starter Project 위자드 기능을 통해 기본 Web Project를 생성합니다.(여기 샘플은 maven기반) 기본 연동 작업홈페이지 추가 src/main/resources/static/index.htmlDemo webjars dependency 추가org.webjarsangul..
이 글은 spring.io에서 제공하는 스프링 시큐리티 topical guide를 번역한 글입니다.원문 : https://spring.io/guides/topicals/spring-security-architecture/ 스프링 시큐리티 아키텍쳐 이 가이드는 스프링 시큐리티에 대한 프레임워크의 기본 개념 및 디자인 관점을 제공하는 입문서이다. 어플리케이션 보안에 대한 가장 기본적인 것을 다루지만, 스프링 시큐리티를 경험한 개발자들이 애매하게 느끼는 부분들을 명확하게 해소해 줄 수 있다. 이를 위해 필터와 메소드 어노테이션을 이용한 웹 어플리케이션 보안을 다룰 것이다.보안 어플리케이션이 어떻게 작동하는지, 어떻게 커스트마이징될 수 있는지, 아니면 단지 어플리케이션 보안에 대한 개념을 알고 싶다면 이 가이드..
퍼옴 : http://lng1982.tistory.com/170 웹 애플리케이션에서 사용자 세션 만료 시 로그인 페이지로 강제 이동시키는 경우가 있다.만약 ajax를 이용하여 서버와의 비동기 방식으로 통신하는 경우 사용자 세션이 만료되어 있다면 이를 어떻게 처리해야 할까? 스프링 시큐리티에서 커스텀 필터를 등록하여 사용자 세션 만료에 대한 exception을 catch한 후 예외 처리 하는 방법으로 ajax 통신에 대한 세션 타임 아웃 체크가 가능하다. security-context.xml client에서의 request 요청 시 header name 중 AJAX가 있는지 여부를 체크하기 위해서 ajaxHeader property 셋팅 AjaxSessionTimeoutFilter.java@Override..
- Total
- Today
- Yesterday