Spring Security

2. SecurityBuilder / SecurityConfigurer

DEV-HJ 2024. 5. 26. 18:28
반응형

 

스프링 시큐리티는 초기화때 인증, 인가와 관련된 여러 절차가 필요하다.

여러개 객체, 설정, 기타 여러가지 일을 한다.

 

이런 일들을 종합적으로 처리하는 두개의 클래스가 있다.

SecurityBuilder와 SecurityConfigurer 이다

이 두개의 클래스를 잘 이해하면 스프링 시큐리티의 초기화 작업에 대해 어느정도 이해 상태에서

전체적인 시큐리티 API와 기능들을 알 수 있을것이다.

 

이 두 클래스가 어떤 역할을 하는지 알아보자


SecurityBuilder

빌더 클래스로서 웹 보안을 구성하는 빈 객체와 설정 클래스들을 생성하는 역할을 하며 

대표적으로 webSecurity와 ★ HttpSecurity(중요함) 가 있다.

 

SecurityConfigurer

Http 요청과 관련된 보안처리를 담당하는 필터들을 생성하고 여러 초기화 설정에 관여한다

스프링 시큐리티는 모든 인증, 인가를 필터에서 처리한다.

필터기반 보안 프레임워크다 라고 해도 과언이 아닐 정도로 필터가 중요하다

 

SecurityBuilder는 SecurityConfigurer를 참조하고(사용하고) 있으며

인증 및 인가 초기화 작업은 SecurityConfigurer에 의해 진행된다.

 

 

 

1. AutoConfiguration 클래스가 빌더 클래스 생성

↓ build() 

2. SecurityBuilder 클래스가 설정 클래스 생성

↓ 설정 클래스 생성

3. SecurityConfigure 클래스를 생성 (초기화 작업 진행)

SecurityConfigure는 내부적으로 init(), configure() 메서드를 가지고 있음

매개변수로 builder를 받는다, 이 builder는 SecurityBuilder 이다. (httpSecurity)

그러고 나서 이 클래스는 이 2개의 메서드를 통해서 초기화 작업을 진행한다.

필터 생성하고, 설정들을 하고..인증과 인가 관련된 내용 설정을 한다.

 

 

AutoConfiguration 의 자동 설정에 의해서

SecurityBuilder가 빌더되고, SecurityBuilder가 생성되면서 HttpSecurity가 생성된다. (Been 등록)

 

이 Been 객체가 SecurityConfigure 타입의 설정 클래스를 생성한다.

설정 클래스는 굉장히 많다. (FormLoginConfigurer, HeadersConfigurer...등등 13개)

 

그리고 SecurityConfigure 클래스는  init(B builder), configure( B builder )  메서드가 있다.

B builder 에는 httpSecurity가 매개변수로 들어간다.

 

init(), configure() 메서드로 초기화 작업이 진행된다. 그 중에서 대표적으로 필터를 생성한다. 

각각의 configurer 마다 필터들이 있다. (ex : LogoutConfigurer는 LogoutFilter를 생성한다)


 

 

 

 

반응형

'Spring Security' 카테고리의 다른 글

1. 자동 설정에 대한 기본 보안 작동  (0) 2024.05.26