스프링 시큐리티 주요 아키텍처 이해 - 위임 필터 및 필터 빈 초기화 - DelegatingProxyChain, FilterChainProxy
인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다.
- 클라이언트로부터 요청이 올 경우 서블릿 필터 -> 서블릿순으로 진행한다.
- 서블릿 필터에서는 스프링 빈을 사용할 수 없다.
- 서블릿 필터는 서블릿 스펙에서 정의되었기에 서블릿 컨테이너에서 다루고 스프링 빈은 스프링 컨테이너에서 다루기 때문이다.
- 스프링 시큐리티는 서블릿 필터기반으로 모든 요청을 처리한다.
- 클라이언트로부터 요청이 오면 서블릿 필터(WAS)는 서블릿이 가지고 있는 DelegatingFilterProxy를 통해서 스프링 빈에게 요청을 위임한다.
- springSecurityChain은 FilterChainProxy(서블릿 필터)를 구현한 필터 빈이다.
- FilterChainProxy(springSecurityChain)은 스프링 시큐리티 초기화시 생성되는 필터들을 관리한다.
- 0번째 필터 -> FilterChainProxy -> 1번째 필터 -> FilterChainProxy -> 2번째 필터 -> FilterChainProxy...
- DelegatingFilterProxy는 springSecurityFilterChain라는 이름을 가진 빈에게 요청을 위임하고 FilterChainProxy 타입의 클래스는 springSecurityFilterChain이라는 이름으로 빈이 생성된다.
'Spring' 카테고리의 다른 글
@RequiredArgsConstructor 와 @Autowired의 차이 (0) | 2023.09.26 |
---|---|
QueryDsl fetchResult Deprecate (0) | 2023.07.07 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 -세션 정보와 타임아웃 설정 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 서블릿 HTTP 세션2 (0) | 2022.09.12 |
로그인 처리1 - 쿠키, 세션 : 로그인 처리하기 - 서블릿 HTTP 세션1 (0) | 2022.09.12 |