Skip to Content
Suffering builds character
아카이브18.spring Security스프링 시큐리티5.부록필터4.SecurityFilterChain

4.SecurityFilterChain

스프링 시큐리티에서 보안에 필요한 기본적인 처리는 SecurityFilterChain 내부에 등록된 각각의 개별 Security Filter들이 수행하도록 분리되어 있음

SecurityFilterChain은 말 그대로, Security와 관련된 처리를 수행할 필터들로 구성된 하나의 체인으로,

사용자의 HTTP/HTTPS 요청에 따라 적절하게 보안 처리를 수행할 개별 필터들이 호출되어 동작하도록 구성되어 있음

이러한 SecurityFilterChainDelegatingFilterProxy로 부터 위임 받은 FilterChainProxy 객체에 의해 호출됨

2. SecurityFilterChain 사용 방식

개별 Security Filter들은 스프링 빈으로 관리되기 때문에 DelegatingFilterProxy에 등록하는 것이 아닌 FilterChainProxy에 등록해야함

따라서 개발자는 아래와 같이 개발 중인 애플리케이션에서 보안 기능에 필요한 Security Filter들을 등록하기 위해 SecurityFilterChain을 스프링 빈(Bean)으로 등록 후, 메서드의 인수로 제공되는 HttpSecurity 객체를 통해 개별 필터들을 등록해주기만 하면 됨

SecurityConfig.java

@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf(Customizer.withDefaults()) // CRSF 방지용 필터 추가 .authorizeHttpRequests(authorize -> authorize .anyRequest().authenticated() ) // 인가 처리용 필터 추가 .formLogin(Customizer.withDefaults()); // Username/Password 인증 필터 추가 return http.build(); } }
Last updated on