728x90

- 서블릿 필터는 스프링에서 정의된 빈을 주입해서 사용할 수 없음
- 스프링 시큐리티는 모든 요청에 대하여 Filter기반으로 처리한다.
- DelegationFilterProxy를 사용하여 Spring Bean에 요청을 위임한다.
-
특정한 이름을 가진 스프링 빈을 찾아 그 빈에게 요청을 위임
- springSecurityFilterChain 이름으로 생성된 빈을 ApplicationContext에서찾아 요청을 위임
- 실제 보안 처리를하지 않음

- springSecurityFilterChain의 이름으로 생성되는 필터 빈
-
DelegatingFilterProxy으로부터 요청을 위임받고 실제 보안 처리
- 스프링 시큐리티 초기화 시 생성되는 필터들을 관리하고 제어
- 스프링 시큐리티가 기본적으로 생성하는 필터
- 설정 클래스에서 API 추가 시 생성되는 필터
- 사용자의 요청을 필터 순서대로 호출하여 전달
- 사용자 정의 필터를 생성해서 기존의 필터 전. 후로 추가 가능
- 필터의 순서를 잘 정의
- 마지막 필터까지 인증 및 인가 예외가 발생하지 않으면 보안 통과

- 사용자의 요청이 들어오면 서블릿 컨테이너에서 필터를 처리하게 된다.
- 이때 DelegatingFilterProxy가 이를 스프링 컨테이너에 있는 FilterChainProxy에 요청을 위임한다.
- FilterChainProxy에서는 해당 Proxy를 이미 springSecurityFilterChain이라는 이름을 빈으로 등록을 하였기에 해당 빈이 순차적으로 필터를 호출하여 준다.
- 각각의 순서대로 필터를 호출하면서 인가, 인증 작업을 진행한다.
- 모든 작업이 끝나게 되면, DispatcherServlet에 요청을 위임한다.

- FilterChainProxy에 doFilter에서 해당 메서드를 호출하면서 Filter들을 인증, 인가 처리를 해준다,
728x90
'스프링 시큐리티' 카테고리의 다른 글
| Ch02. 스프링 시큐리티 주요 아키텍처 이해 - 인증 개념 이해(Authentication) (0) | 2022.01.16 |
|---|---|
| Ch02. 스프링 시큐리티 주요 아키텍처 이해 - 필터 초기화와 다중 보안 설정 (0) | 2022.01.16 |
| Ch01. 스프링 시큐리티 기본 API 및 Filter 이해 - 사이트 간 요청 위조(CSRF, CsrfFilter) (0) | 2022.01.15 |
| Ch01. 스프링 시큐리티 기본 API 및 Filter 이해 - 예외 처리 및 요청 캐시 필터(ExceptionTranslationFilter, RequestCacheAwareFilter) (0) | 2022.01.15 |
| Ch01. 스프링 시큐리티 기본 API 및 Filter 이해 - 권한설정과 표현식 (0) | 2022.01.15 |