Spring Security - Security 아키텍처, DelegatingFilterProxy, FilterChainProxy
2021. 4. 16. 16:46ㆍSPRING/SPRING SECURITY
서블릿 Filter
- 서블릿이 호출되기 전, 후로 공통 로직을 수행하는 역할을 한다.
- 하지만 서블릿 영역이기 때문에 스프링빈을 사용할 수 없다.
- Spring Security는 MVC영역(Dispatcher Servlet)의 앞에서 보안 처리를 해야하기 때문에, Filter에서 스프링빈을 사용하여 보안 처리를 해야했다.
DelegatingFilterProxy
- 서블릿 컨테이너에서 스프링 컨테이너로 보안처리를 위임하는 역할을 한다.
- 서블릿 영역의 Filter에서 스프링빈을 사용할 수 없기 때문에 서블릿 영억의 Filter로 등록된 DelegatingFilterProxy가 스프링 영역의 springSecurityFilterChain 이름의 스프링빈을 찾아 보안처리를 위임한다. 이 스프링빈이 FilterChainProxy이다.
FilterChainProxy
- FilterChainProxy도 마찬가지로 프록시이다.
- 스프링 시큐리티가 기본적으로 등록하거나 설정 클래스에서 API 추가시 등록되는 필터들을 순서대로 실행하는 역할을 한다.
- 이 필터들이 모두 실행되는 도중에 인증 예외나 인가 예외가 발생하지 않으면 MVC 영역으로 넘어간다.
'SPRING > SPRING SECURITY' 카테고리의 다른 글
Spring Security - Authentication 구조 (0) | 2021.04.16 |
---|---|
Spring Security - 다중 설정 클래스 (0) | 2021.04.16 |
Spring Security - CsrfFilter (0) | 2021.04.16 |
Spring Security - 인증, 인가 예외 ExceptionTranslationFilter, AuthenticationException, AccessDeniedException (0) | 2021.04.16 |
Spring Security - 인가 API, URL 방식 (0) | 2021.04.16 |