SecurityBuilder는 빌더 클래스로서 웹 보안을 구성하는 빈 객체와 설정 클래스를 생성하는 역할
- WebSecurity와 HttpSecurity가 있다
SecurityConfigurer는 Http 요청과 관련된 보안처리를 담당하는 필터들을 생성하고 여러 초기화 설정에 관여한다
SecurityBuilder는 SecurityConfigurer를 포함하고 있으며, 인증 및 인가 초기화 작업은 SecurityConfigurer에 의해 진행된다
자동 설정에 의해 빌더 클래스가 생성되고, 이후 설정 클래스가 생성된 후 init(B builder), configure(B builder)로 초기화 작업 진행
빌더는 HttpSecurity, WebSecurity를 초기화 진행한다. 초기화가 완료될때 SecuirtyFilterChain이 생성된다
CustomSecurityConfigurer 만들기
자동 설정 어플리케이션 초기화
1) SpringWebMvcImportSelector : WebMvcSecurityConfiguration
2) SecurityFilterAutoConfiguration : DelegatingFilterProxyRegistrationBean - DelegatingFilterProxy 등록(SpringFilterChain 이름의 빈 검색) ~ 클라이언트의 요청을 필터 체인에게 위임하는 역할
3) WebMvcSecurityConfiguration :
AuthenticationPrincipalArgumentResolver - @AuthenticatioPrincipal로 Principal 객체 바인딩
CurrentSecurityContextArgumentResolver
CsrfTokenArgumentResolver
4) HttpSecurityConfiguration : HttpSecurity 공통 설정 클래스와 필터들을 생성하고 최종적으로 SecurityFilterChain 빈 반환
5) SpringBootWebSecurityConfiguration
6) WebSecurityConfiguration :
HttpSecurityConfiguration에서 생성한 HttpSecurity 객체를 주입벋는다. Form로그인 기능과 Basic 기능을 추가 정의한 기본 SecurityFilterChain 빈을 정의
* SecurityFilterChain이 만들어지고 나면 빌더클래스의 빌드를 통해 FilterChainProxy 생성자에 SecurityFilterChain 전달
SecurityFilterChains에는 여러 SecurityFilterChain을 가지고 있다
* 커스텀 시큐리티 필터 체인을 만드는 경우 SpringBootWebSecurityConfiguration의 SecurityFilterChainConfiguration이 구동되지 않는다
+ 커스텀 시, SecurityFilterChain과 WebSecurityConfigurerAdapter 두 가지 모두 설정할 수 없으며 하나만 정의해야 한다
'Spring🍃 > Spring Security🛡️' 카테고리의 다른 글
정수원의 Spring Security Oauth2 (3) : 시큐리티 인증 인가 흐름 (0) | 2024.11.13 |
---|---|
정수원의 Spring Security Oauth2 (2) : Spring Security 초기화 과정 이해 (0) | 2024.11.05 |
Spring Security Architecture(1~5) + Form Login + Servlet Authenticaion Architecture(1~3) 해석 (0) | 2023.01.04 |
Spring Security (0) | 2022.12.26 |