각각의 필터에서 CSRF, 로그아웃, 로그인, 인가, 등 여러 작업을 수행한다.
delegatingFilterProxy → 클라이언트의 요청을 가로 채서 FilterChainProxy에게 전달해줄 수 있다.
FilterChainPRoxy: springSecurityFilterChain이라는 빈으로 등록되어있음.
getFilters → 필터들을 확인가능하다.
securityFilterChain내부에는 여러개의 filter가 들어있는데, 이는 각각 로그인, 로그아웃, 인가작업, csrf방어와 같은 작업의 시큐리티 작업을 수행하게 된다.
filterchain을 직접 등록하는 방법
스프링 시큐리티 의존성을 추가하면 기본적인DefaultSecurityFilterChain 하나가 등록된다.
내가 원하는 SecurityFilterChain을 등록하기 위해서는 SecurityFilterChain을 리턴하는 @Bean 메소드를 등록하면 된다.
@Configuration
, @EnableWebSecurity
애노테이션 작성
커스텀 SecurityFilterChain 등록 방법
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain1(HttpSecurity http) throws Exception{
return http.build();
}
}
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain1(HttpSecurity http) throws Exception{
return http.build();
}
@Bean
public SecurityFilterChain filterChain2(HttpSecurity http) throws Exception {
return http.build();
}
}