본문 바로가기
Java/SpringBoot

Security Filter Chain

by wooksss 2025. 1. 31.

Spring Security의 Filter는 HTTP 요청을 가로채서

인증(Authentication)과 인가(Authorization)를 처리하는 핵심적인 역할을 한다.

스프링 시큐리티는 자체적인 필터 체인을 가지고 있으며,

이를 통해 요청이 컨트롤러(Controller)로 전달되기 전에 보안 검사를 수행한다.

스프링 시큐리티의 필터 체인(Security Filter Chain)

스프링 시큐리티는 여러 개의 서블릿 필터(Servlet Filter)를 체인 형태로 구성하여 요청을 보호한다.

핵심적인 필터는 SecurityFilterChain 인터페이스를 구현하는 여러 개의 필터로 이루어져 있다.

 

📌 스프링 시큐리티의 전체 필터 목록

WebAsyncManagerIntegrationFilter 비동기 요청에서도 SecurityContext를 유지
SecurityContextPersistenceFilter 요청이 시작될 때 SecurityContext를 로드하고 요청이 끝나면 저장
HeaderWriterFilter 보안 관련 HTTP 헤더(CSP, HSTS 등) 추가
CorsFilter CORS 정책 적용
LogoutFilter 사용자의 로그아웃 처리
UsernamePasswordAuthenticationFilter 아이디/비밀번호 로그인 인증 처리
OAuth2AuthorizationRequestRedirectFilter OAuth2 인증 요청 리디렉션 처리
OAuth2LoginAuthenticationFilter OAuth2 로그인 인증 처리
Saml2WebSsoAuthenticationFilter SAML2 SSO 인증 처리
BearerTokenAuthenticationFilter JWT 및 Bearer Token 인증 처리
BasicAuthenticationFilter HTTP Basic 인증 처리
SecurityContextHolderFilter SecurityContextHolder를 업데이트
AnonymousAuthenticationFilter 인증되지 않은 사용자에게 ROLE_ANONYMOUS 권한 부여
RememberMeAuthenticationFilter "로그인 유지" 기능 처리 (쿠키 기반 인증)
SessionManagementFilter 세션 고정 공격 방지 및 동시 세션 제어
ConcurrentSessionFilter 중복 로그인 감지 및 세션 무효화
RequestCacheAwareFilter 인증 후 이전 요청을 기억하여 리다이렉트
SecurityContextHolderAwareRequestFilter HttpServletRequest가 SecurityContext의 인증 객체를 활용할 수 있도록 래핑
ExceptionTranslationFilter 인증 또는 권한 문제 발생 시 예외 처리 및 리디렉션
DefaultLoginPageGeneratingFilter 기본 로그인 페이지 제공
DefaultLogoutPageGeneratingFilter 기본 로그아웃 페이지 제공
AuthorizationFilter 요청에 대한 권한 검사 수행
FilterSecurityInterceptor 최종적으로 요청을 보호하고 접근 제어 수행

 

Spring Security의 Filter에 대해서 찾아봤는데 정말 다양하다.

상황에 맞게 어떤 Filter를 사용해야 하는지 정확하게 알아볼 필요가 있다.

 

또한 인증 기능에 따라 사용되지 않는 필터를 대체하는 경우에 

어떤 방식으로 Filter를 작성해야 하는지 공부할 필요가 있다.

'Java > SpringBoot' 카테고리의 다른 글

영속성(Persistence)이란 무엇일까?  (0) 2025.02.03
자바의 Filter에 대해서  (0) 2025.01.31
인증과 인가  (0) 2025.01.30
JWT 로그인 테스트-4  (0) 2025.01.22
JWT 로그인 테스트-3  (0) 2025.01.21