SecurityContextHolderFilter
-
SessionManagementFilter 는 로그인 인증 시점과 인증된 사용자의 재 요청일 경우 실행되는 필터이다. SessionManagementFilter 는 "세션 자체" 를 보고 인증 여부를 판단하지 않고, SecurityContext 안Authentication 인증 객체의 상태를 보고 판단한다. 1️⃣ 핵심 결론 한 줄 요약SessionManagementFilter 가 "인증된 세션인가?" 를 확인하는 방법은SecurityContextHolder.getContext().getAuthentication() 여기서 가져온 Authentication 이👉 null 이 아니고👉 isAuthenticated() == true👉 AnonymousAuthenticationToken 이 아님이면 인증..
SessionManagementFilter 는 매 요청마다 인증된 세션인지를 어떻게 판단하나? (Feat. SecurityContextHolderFilter)SessionManagementFilter 는 로그인 인증 시점과 인증된 사용자의 재 요청일 경우 실행되는 필터이다. SessionManagementFilter 는 "세션 자체" 를 보고 인증 여부를 판단하지 않고, SecurityContext 안Authentication 인증 객체의 상태를 보고 판단한다. 1️⃣ 핵심 결론 한 줄 요약SessionManagementFilter 가 "인증된 세션인가?" 를 확인하는 방법은SecurityContextHolder.getContext().getAuthentication() 여기서 가져온 Authentication 이👉 null 이 아니고👉 isAuthenticated() == true👉 AnonymousAuthenticationToken 이 아님이면 인증..
2025.12.17 -
Spring Security 6 시점에서 SecurityContextHolderFilter 로 변경되었고, SecurityContextHolderFilter 는사용자의 HTTP 요청이 들어왔을 때 SecurityContext 를 불러와 워커 스레드의 ThreadLocal 에 저장한다. 1️⃣ Tomcat 워커 스레드와 요청 처리클라이언트 → HTTP 요청Tomcat 워커 스레드 하나가 요청을 할당받는다.Tomcat 의 메인 쓰레드는 어플리케이션 실행만 담당한다.이 워커 스레드는 요청 수명 동안 재사용됨(Thread Pool)👉 그래서 ThreadLocal 정리가 매우 중요함 2️⃣ SecurityContextHolderFilter의 역할 (Spring Security 6 핵심)Spring Securi..
Spring Security6 SecurityContextHolderFilter 동작과 ThreadLocal Clear 시점Spring Security 6 시점에서 SecurityContextHolderFilter 로 변경되었고, SecurityContextHolderFilter 는사용자의 HTTP 요청이 들어왔을 때 SecurityContext 를 불러와 워커 스레드의 ThreadLocal 에 저장한다. 1️⃣ Tomcat 워커 스레드와 요청 처리클라이언트 → HTTP 요청Tomcat 워커 스레드 하나가 요청을 할당받는다.Tomcat 의 메인 쓰레드는 어플리케이션 실행만 담당한다.이 워커 스레드는 요청 수명 동안 재사용됨(Thread Pool)👉 그래서 ThreadLocal 정리가 매우 중요함 2️⃣ SecurityContextHolderFilter의 역할 (Spring Security 6 핵심)Spring Securi..
2025.12.16 -
Spring Security 5 에서 6 버전으로 넘어가면서 변경된 SecurityContextPersistenceFilter 와 SecurityContextHolderFilter 를알아보자 SecurityContextPersistenceFilter 인증 처리 과정요청이 들어오면 SecurityContextRepository.loadContext() 를 호출해서 기존 인증 정보를 로딩한다.=> 인증정보가 들어있는 SecurityContext를 가져옴로딩된 SecurityContext를 SecurityContextHolderStrategy.setContext() 로 ThreadLocal 에 저장함=> SecurityContextHolderStrategy 는 실제로 ThreadLocalSecurityCont..
Spring Security 5에서 6로 변경된 필터 확인하기(SecurityContextPersistenceFilter, SecurityContextHolderFilter)Spring Security 5 에서 6 버전으로 넘어가면서 변경된 SecurityContextPersistenceFilter 와 SecurityContextHolderFilter 를알아보자 SecurityContextPersistenceFilter 인증 처리 과정요청이 들어오면 SecurityContextRepository.loadContext() 를 호출해서 기존 인증 정보를 로딩한다.=> 인증정보가 들어있는 SecurityContext를 가져옴로딩된 SecurityContext를 SecurityContextHolderStrategy.setContext() 로 ThreadLocal 에 저장함=> SecurityContextHolderStrategy 는 실제로 ThreadLocalSecurityCont..
2025.04.22 -
Spring Security 5 버전에서 6버전으로 올라가면서 Success Handler 까지 정상적으로 인증이 성공했지만로그인이 안되어 찾아보다가 공식 문서 및 구글링을 통해 찾았다. 위 내용을 요약하면 아래와 같다.Spring Security 5 에서는 SecurityContextPersistenceFilter 를 사용하여 Security Context 가 SecurityContextRepository 에 자동으로 저장된다고 한다. 정상적인 요청과 응답이 수행되기 전에세션을 생성한다는 문제점과 이러한 세션을 추적하기가 어렵다는 문제가 있었다.Spring Security 6 에서는 SecurityContextPersistenceFilter 가 Defrecated 되고 SecurityContextHo..
Spring Security 5 버전에서 Spring Security 6 버전으로 올라가면서 변경된 SecurityContext 에 인증 객체 설정Spring Security 5 버전에서 6버전으로 올라가면서 Success Handler 까지 정상적으로 인증이 성공했지만로그인이 안되어 찾아보다가 공식 문서 및 구글링을 통해 찾았다. 위 내용을 요약하면 아래와 같다.Spring Security 5 에서는 SecurityContextPersistenceFilter 를 사용하여 Security Context 가 SecurityContextRepository 에 자동으로 저장된다고 한다. 정상적인 요청과 응답이 수행되기 전에세션을 생성한다는 문제점과 이러한 세션을 추적하기가 어렵다는 문제가 있었다.Spring Security 6 에서는 SecurityContextPersistenceFilter 가 Defrecated 되고 SecurityContextHo..
2024.02.22