6.시큐리티 필터 적용
1. Spring Security에서 제공하는 Filter 적용 방법
스프링 시큐리티가 제공하는 필터들은 일반적으로 아래와 같이 Security와 관련된 Bean들만 등록하는 설정 파일을 통해 추가할 수 있음
→ SecyrityConfig.java
각각의 Filter들은 역할에 따라 순서가 정해져 있는 것들도 존재하기 때문에, 개별 Filter 객체들을 개별적으로 Bean으로 등록하진 않음
💡
Tip
각 Filter들의 동작 순서
로그인이 성공해야 내 정보를 조회할 수 있는 것 처럼,
인증 필터는 인가 필터보다 항상 먼저 동작해야 함
1-1. Filter를 관리하는 SecurityFilterChain을 Bean으로 등록
따라서 각각의 Filter들이 순서대로 동작하도록 하기 위해서는
Filter들을 SecurityFilterChain에 포함시키는 방식으로 작성하기 때문에,
먼저 SecurityFilterChain을 Bean으로 등록
SecurityConfig.java
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http.build();
}
}1-2. SecurityFilterChain 내부에 개별 Filter들을 하나씩 등록
SecurityFilterChain 빈인 filterChain(HttpSecurity http) 메서드 내부에 애플리케이션에서필요한 각각의 필터들을 하나씩 등록
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()
) // 인가 처리용 필터 추가
.httpBasic(Customizer.withDefaults()) // 기본 인증용 필터 추가
.formLogin(Customizer.withDefaults()); // Username/Password 인증 필터 추가
return http.build();
}
}Last updated on