AuthorizationFilterAuthorizationFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 마지막에 위치한다.SecurityFilterChain의 authorizeHttpRequests() 설정에 따른 최종 인가 처리를 한다.요청에 대한 접근 권한 검증을 한다.인가 결정에 따른 접근 제어 실행 한다.기본 설정 예시커스텀 SecurityFilterChain 에서는 다음과 같이 인가 규칙을 설정할 수 있다http .authorizeHttpRequests((auth) -> auth .requestMatchers("/").permitAll() // 루트 경로는 모든 사용자 접근 가능 .requestMatchers("/adm..
ExceptionTranslationFilterExceptionTranslationFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 열다섯 번째에 위치한다.보안 관련 예외를 처리하는 핵심 필터이다.이 필터 이후에 발생하는 인증, 인가 예외를 핸들링하기 위해 사용된다.주요 특징DefaultSecurityFilterChain 에 기본 등록커스텀 SecurityFilterChain 에도 자동 등록인증/인가 예외 처리 담당ExceptionTranslationFilter 클래스public class ExceptionTranslationFilter extends GenericFilterBean implements MessageSourceAware { /..
AnonymousAuthenticationFilterAnonymousAuthenticationFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 열네 번째에 위치한다.SecurityContext 가 비어있는 경우 익명 사용자 인증 정보를 제공하는 역할을 한다.주요 특징DefaultSecurityFilterChain 에 기본 등록커스텀 SecurityFilterChain 에도 자동 등록SecurityContext 가 null 일 때 Anonymous 인증 정보 생성구현 구조기본 클래스 구조public class AnonymousAuthenticationFilter extends GenericFilterBean implements Initializi..
SecurityContextHolderAwareRequestFilterSecurityContextHolderAwareRequestFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 열세 번째에 위치한다.ServletRequest 에 Spring Security 관련 메소드들을 추가하는 역할을 한다.주요 특징DefaultSecurityFilterChain 에 기본 등록커스텀 SecurityFilterChain 에도 자동 등록ServletRequest 확장 기능 제공구현 구조기본 클래스 구조public class SecurityContextHolderAwareRequestFilter extends GenericFilterBean { // 필터 구현}..
RequestCacheAwareFilterRequestCacheAwareFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 열두 번째에 위치한다.이전 HTTP 요청에서 처리하지 못한 작업을 현재 요청에서 처리하기 위한 필터이다.필터 설정커스텀 SecurityFilterChain 에서는 기본적으로 활성화되어 있으며, 필요한 경우 다음과 같이 비활성화할 수 있다http.requestCache((cache) -> cache.disable());동작 프로세스기본 동작 시나리오미인증 사용자의 보호된 리소스 접근사용자가 인증이 필요한 "/my" 경로 접근권한 없음 예외 발생요청 정보 저장핸들러가 "/my" 경로 정보를 캐시에 저장로그인 페이지로 리다이렉트인증..
BasicAuthenticationFilterBasicAuthenticationFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터이며, 열한 번째에 위치한다.HTTP Basic 인증을 처리하는 핵심 필터이다.Basic 인증은 RFC 7617에서 정의된 표준 인증 방식으로, 간단하면서도 효과적인 인증 메커니즘을 제공한다.필터 활성화 방법http.httpBasic(Customizer.withDefaults());Basic 인증의 특징과 동작 방식Form 인증과의 차이점Form 인증사용자가 웹 폼에 직접 입력세션 또는 JWT 기반의 상태 유지일회성 인증 후 토큰/세션으로 관리Basic 인증브라우저 기본 제공 대화상자 사용매 요청마다 인증 정보 전송Base64..
DefaultLogoutPageGeneratingFilterDefaultLogoutPageGeneratingFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터로 열 번째에 위치한다.이 필터가 등록되는 목적은 GET /logout 경로에 대해 기본 로그아웃 페이지를 응답하는 역할을 수행한다.이 필터는 여러 로그인 설정에 의존한다. formLogin 설정에서는 커스텀 SecurityFilterChain 등록 시 아래와 같은 설정으로 사용할 수 있다.// 기본 사용http.formLogin(Customizer.withDefaults());DefaultLogoutPageGeneratingFilter 클래스public class DefaultLogoutPageG..
DefaultLoginPageGeneratingFilterDefaultLoginPageGeneratingFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터로 아홉 번째에 위치한다.이 필터가 등록되는 목적은 GET /login 경로에 기본 로그인 페이지를 응답하는 역할을 수행한다.이 필터는 여러 로그인 설정에 의존한다.formLogin 설정에서는 커스텀 SecurityFilterChain 등록 시 아래와 같은 설정으로 사용할 수 있다.단, 커스텀 로그인 페이지를 사용할 경우에는 제외된다.// 기본 사용http.formLogin(Customizer.withDefaults());// 커스텀 하더라도 아래와 같이 loginPage() 메소드를 다루지 않으면 기..
UsernamePasswordAuthenticationFilterUsernamePasswordAuthenticationFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터로 여덟 번째에 위치한다.이 필터는 username, password 기반 로그인 기능의 뼈대가 되는 필터이다.이 필터는 application/x-www-form-urlencoded 형식의 username/password 데이터를 처리하며, 기본적으로 POST /login 요청을 가로채어 인증을 수행한다. 만약 JSON 기반 인증을 원한다면, 커스텀 필터를 만들어야 한다.커스텀 SecurityFilterChain 을 생성하면 자동 등록이 안되기 때문에 아래 구문을 통해서 필터를 활성화시켜..
LogoutFilterLogoutFilter 목적이 필터는 DefaultSecurityFilterChain 에 기본적으로 등록되는 필터로 일곱 번째에 위치한다.이 필터가 등록되는 목적은 인증 후 생성되는 사용자 식별 정보에 대해 로그아웃 핸들러를 돌며 로그아웃을 수행하는 필터이다.기본적으로 세션 방식에 대한 로그아웃 설정이 되어 있기 때문에 JWT 방식이나 추가할 로직이 많을 경우 커스텀해야 한다.커스텀 SecurityFilterChain 을 생성해도 기본적으로 등록되며, 비활성화하려면 아래와 같이 설정할 수 있다.http.logout((logout) ->logout.disable());커스텀한 LogoutFilter 가 있는 경우 기본 제공되는 필터를 비활성화 처리 해야 한다.LogoutFilter 클..