
SecurityFilterChain은 스프링 시큐리티의 보안, 인증/인가와 같은 주요 로직을 담당한다.
하나의 SecurityFilterChain 내부에 N개의 필터를 구성하여 각각의 필터가 하나의 로직 (로그인, 로그아웃, 인가 등) 수행의 시작점이 된다.


@EnableWebecurity debug 모드 설정
@Configuration
@EnableWebSecurity(debug = true)
public class SecurityConfig {
}
애플리케이션을 실행 후, 웹 브라우저에서 아무 경로로 요청을 보내면 터미널을 통과하는 SecurityFilterChain의 필터 목록이 출력된다.
http
.cors((cors) -> cors.disable());
http
.csrf((csrf) -> csrf.disable());
// 활성화
http
.formLogin(withDefaults());
// 비활성화
http
.formLogin((login) -> login.disable());
// formLogin 메소드 설정시 기본적으로 활성화
// 커스텀 시 기본 필터 비활성화
http
.formLogin((login) -> login.loginPage("/login").permitAll());
// 활성화
http
.httpBasic(Customizer.withDefaults());
// 비활성화
http
.httpBasic((basic) -> basic.disable());
// 특정 필터 이전
http
.addFilterBefore(추가할필터, 기존필터.class);
// 특정 필터 위치
http
.addFilterAt(추가할필터, 기존필터.class);
// 특정 필터 이후
http
.addFilterAfter(추가할필터, 기존필터.class);