DelegatingFilterProxy
- Servlet Filter는 스프링에서 정의된 빈을 주입해서 사용할 수가 없음.
- 서버 구동시에 Spring Security가 자동으로 보안을 잡아주는데 구동시에 DelegatingFilerProxy가 생성됨.
- DelegatingFilerProxy는 특정한 이름을 가진 스프링 빈을 찾아 그 븐에게 요청을 위임.
- springSecurityFilterChain 이라는 이름으로 생성된 빈을 ApplicationContext 에서 찾아 요청을 위임함.
- DelegatingFilerProxy가 보안처리를 하는 것이 아님.
FilterChainProxy
- springSecurityFilterChain 의 이름으로 생성되는 빈
- DelegatingFilerProxy 로부터 요청을 위임 받아 실제로 보안을 처리함.
- 스프링 시큐리티 초기화 시 생성되는 필터들을 관리하고 제어
- 스프링 시큐리티가 기본적으로 생성하는 필터
- 설정 클래스에서 API 추가 시 생성되는 필터
- 사용자의 요청을 필터 순서대로 호출하여 전달
- 사용자정의 필터를 생성해서 기존의 필터 전, 후로 추가 가능
- 마지막 필터까지 인증 및 인가 예외가 발생하지 않으면 보안을 통과함.
SpringSecurity DelegatingFilterProxy Flow
- 사용자로부터 서버에 요청이 오게 되면 몇 가지 필터를 거치게 됨.
- 그 중에 보안을 위임하여 인증 및 인가를 확인하는 DelegatingFilerProxy 가 존재함.
- DelegatingFilerProxy 에 오게 되면 springSecurityFilterChain 의 이름으로 생성된 빈을 찾게됨.
- springSecurityFilterChain 빈을 가진 FilterChainProxy가 요청위임을 받아 자신이 가진 보안 필터들을 수행함. 기본(14개)
- 아무런 문제없이 통과하게 되면 SpringMVC 로 요청함.
'Backend > Security' 카테고리의 다른 글
Authentication (0) | 2023.01.18 |
---|---|
필터 초기화와 다중 보안 설정 (0) | 2023.01.18 |
CSRF(사이트 간 요청 위조) (0) | 2023.01.09 |
ExceptionTranslationFilter (0) | 2023.01.09 |
권한 설정 및 표현식 (0) | 2023.01.09 |