본문 바로가기

spring security

SecurityBuilder / SecurityConfigurer

정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !!

 

 

 

Security Builder와 SecurityConfigurer
  • Security Builder : 빌더 클래스 - 웹 보안을 구성하는 빈 객체와 설정 클래스들을 생성하는 역할
    • WebSecurity / HttpSecurity 대표적
  • Security Configurer : 설정 클래스 - Http 요청과 관련된 보안 처리를 담당하는 필터들을 생성하고 여러 초기화 설정에 관여함
  • Security Builder가 SecurityConfigurer를 이용해서 인증 및 인가 초기화 작업을 진행
    ≫ 실제 초기화 작업 (필터 생성 등)은 SecurityConfigurer에서 이루어짐
SecurityBuilder<O> (HttpSecurity / WebSecurity / AuthenticationManagerBuilder)

↓   참조

SecurityConfigurer<O, B> (SecurityContextConfigurer<H> / HttpBasicConfigurer<B> ...등 다양)

 

 

초기화 과정

 

AutoConfiguration : 자동 실행

build()

빌더 클래스 생성

SecurityBuilder (HttpSecurity 빈 생성)

설정 클래스 생성

SecurityConfigurer (FormLoginConfigurer, HttpBasicConfigurer, ... 등 여러 Configurer 생성)

초기화 작업 진행

init(B builder) / configure(B builder)

각각의 Configurer마다 Filter 및 객체 생성

Filter를 통해 인증, 인가 작업 수행

 

 

HttpSecurityConfiguration.java

  • HttpSecurity 생성 → http
  • http를 통해 여러 보안 기능에 대해 초기화 과정 진행 (csrf, addFilter, ...)
    • 각 설정 내부에서는 각 기능에 대한 Configurer 설정 클래스를 생성하여 초기화 작업 진행
  • http 빈 객체 생성

  • SpringBootWebSecurityConfiguration 클래스에서 HttpSecurity 빈 객체를 주입받음
  • formLogin, httpBasic에 대한 초기화 작업도 진행 → Configurer 설정 클래스 생성
  • http.build() ≫ 실제로 Configurer의 init(), configure() 메소드를 실행하여 초기화 작업 완성
  • init() ≫ 각각의 Configurer에 대해 init() 메소드 실행 → 객체 만들고 공유하는 작업 (초기화 작업)
  • configure() ≫ 각각의 Configurer에 대해 configure() 메소드 실행 → 필터와 필요한 객체 생성 (실제 설정 작업)
  • build() 작업이 끝나면 SecurityFilterChain이 생성됨

 

 

 

 

'spring security' 카테고리의 다른 글

폼 인증 - formLogin()  (0) 2025.01.19
사용자 정의 보안 설정하기  (0) 2025.01.17
DelegatingFilterProxy / FilterChainProxy  (0) 2025.01.13
WebSecurity / HttpSecurity  (0) 2025.01.13
프로젝트 생성 / 의존성 추가  (0) 2025.01.12