spring security
-
Spring Security 에서 Http Response 에 대한 header 값을 설정하는 부분이 .headers 옵션이다. 기본적은 Spring Security headers 설정은 아래와 같다.Cache-Control: no-cache, no-store, max-age=0, must-revalidatePragma: no-cacheExpires:0X-Content-Type-Options: nosniffStrict-Transport-Security: max-age=31536000 ; includeSubDomainsX-Frame-Options: DENYX-XSS-Protection: 1; mode=block .frameOptions(X-Frame-Options) Http 헤더에서 X-Frame-Opt..
Spring Security headers, frameOptions, contentSecurityPolicy, HTTP Strict Transport Security(HSTS)Spring Security 에서 Http Response 에 대한 header 값을 설정하는 부분이 .headers 옵션이다. 기본적은 Spring Security headers 설정은 아래와 같다.Cache-Control: no-cache, no-store, max-age=0, must-revalidatePragma: no-cacheExpires:0X-Content-Type-Options: nosniffStrict-Transport-Security: max-age=31536000 ; includeSubDomainsX-Frame-Options: DENYX-XSS-Protection: 1; mode=block .frameOptions(X-Frame-Options) Http 헤더에서 X-Frame-Opt..
2024.12.11 -
SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
Spring Security SessionManagementFilter, ConcurrentSessionFilter(동시세션제어)SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
2024.09.06 -
Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
Spring Security Filter 등록 및 실행 순서Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
2024.08.30 -
Spring Security 5 버전에서 6 버전으로 바뀌면서 변경된 내용중 SecurityContextHolder 에 관한 내용이 있어공부하게 되었다. SecurityContext사용자 인증 정보를 저장하고 있는 Authentication 객체를 저장하는 보관소이다.SecurityContextHolder 전략(Strategy)에 따라 SecurityContext 에 저장하는 방식이 다르며일반적으로 ThreadLocal 에 저장한다.Authentication 인증 객체를 한 쓰레드에서 공유하므로 언제든지 불러와 사용할 수 있다. SecurityContextHolderSecurityContext 를 관리하고 저장하는 객체이다.SecurityContext 저장을 위해 ThreadLocal 를 가지고 있다..
SecurityContext, SecurityContextHolderSpring Security 5 버전에서 6 버전으로 바뀌면서 변경된 내용중 SecurityContextHolder 에 관한 내용이 있어공부하게 되었다. SecurityContext사용자 인증 정보를 저장하고 있는 Authentication 객체를 저장하는 보관소이다.SecurityContextHolder 전략(Strategy)에 따라 SecurityContext 에 저장하는 방식이 다르며일반적으로 ThreadLocal 에 저장한다.Authentication 인증 객체를 한 쓰레드에서 공유하므로 언제든지 불러와 사용할 수 있다. SecurityContextHolderSecurityContext 를 관리하고 저장하는 객체이다.SecurityContext 저장을 위해 ThreadLocal 를 가지고 있다..
2024.02.23 -
기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
Spring Boot 2.7 이상, Spring Security 5.6 이상버전 설정하기기존 Spring Boot 2.7 이하버전, Spring Security 5.6 이전버전에서는 아래와 같이 설정했다. .authorizeRequests() 메서드를 통해 허용할 URL, formLogin() 메서드를 통해 로그인 설정 등 많이 바뀐건 아니지만 불필요한 소스를 삭제하고 간단하게 설정하는방법으로 바꼈다고 한다. Spring Security 5.6 이전버전 기존소스 @Configuration @EnableWebSecurity public class SecurityConfig{ @Autowired private AuthenticationUserDetailsService authenticationUserManager; @Bean public WebSecurityCustomizer configure..
2023.07.11 -
Filter 와 Interceptor Interceptor 는 스프링 컨테이너 영역이므로 Spring 빈으로 등록이 가능하지만 Filter 는 서블릿 컨테이너의 영역이라서 Spring 의 빈으로 등록할 수 없다고 생각했다. 위 이미지와 같이 Filter 는 서블릿 컨테이너의 영역에서 존재하고 서블릿이 제공하는 기술이며스프링 컨테이너의 영역과는 분리되어 있다. 하지만 개발을 하게 되면 Filter 를 Spring 빈으로 등록하여 사용하는걸 볼 수 있다.서블릿 컨테이너에서 관리되는 DelegatingFilterProxy 가 서블릿 컨테이너와 스프링 컨테이너를연결할 수 있는 프록시용 필터이다. Spring Security Filter Spring Security 는 위 이미지와 같이 서블릿 Filter 를..
Spring Security DelegatingFilterProxy(서블릿 컨테이너와 스프링 컨테이너의 다리 역할)Filter 와 Interceptor Interceptor 는 스프링 컨테이너 영역이므로 Spring 빈으로 등록이 가능하지만 Filter 는 서블릿 컨테이너의 영역이라서 Spring 의 빈으로 등록할 수 없다고 생각했다. 위 이미지와 같이 Filter 는 서블릿 컨테이너의 영역에서 존재하고 서블릿이 제공하는 기술이며스프링 컨테이너의 영역과는 분리되어 있다. 하지만 개발을 하게 되면 Filter 를 Spring 빈으로 등록하여 사용하는걸 볼 수 있다.서블릿 컨테이너에서 관리되는 DelegatingFilterProxy 가 서블릿 컨테이너와 스프링 컨테이너를연결할 수 있는 프록시용 필터이다. Spring Security Filter Spring Security 는 위 이미지와 같이 서블릿 Filter 를..
2023.03.23