SpringSecurity.drawio

1.사용자의 요청
- 사용자의 요청(request)이 있으면 서블릿 컨테이너의 웹필터가 먼저 수신한다.
- 서블릿 필터는 스프링에서 정의 된 빈을 주입해서 사용할 수 없기 때문에 스프링 빈을 호출 하거나 사용할 수 없다.
- 따라서 스프링에서 빈을 사용하거나 실행할 수 있는 스프링 빈에게 요청(delegation request)을 위임해야 한다.
- 이때 스프링에게 위임하는 클래스가 바로 DelegatingFilterProxy이다.}
2.DelegatingFilterProxy
- DelegatingFilterProxy는 서블릿 필터에서 서블릿 필터를 구현한 스프링 빈에게 요청을 위임해주는 대리자 역할의 서블릿 필터이다.
- 스프링 컨테이너에게 요청을 위임하게 되면 먼저 설정파일(securityConfig.java)을 읽어 HttpSecurity 클래스는 필터체인을 생성한다.
- 필터체인을 생성한다음 FilterChainProxy에게 전달한다.
3.FilterChainProxy
- 각 필터들을 차례대로 호출하여 인증과 인가를 처리한다.