DelegatingProxyChain 이란?
DelegatingProxyChain를 간단하게 설명하면
springSecurity는 servletFilter기반으로 보안처리하고 비지니스로직을 수행할 수 있도록 진행된다.
하지만 요청을 받는 servletFilter는 서블릿컨테이너에서 생성되고 실행된다. 즉, 스프링컨테이너에서 생성되고 관리되는 스프링빈에 접근할 수 없다.
springSecurity는 스프링빈을 만들고 servletFilter를 구현하고 있기 때문에 요청을 받은 servletFilter가 springSecurityFilterChain 이름으로 생성된 빈을 ApplacationContext에서 찾아서 스프링빈에 요청을 위임할 수 있게 해주는 프록시가 DelegatingProxyChain 이다.
FilterChainProxy
- springSecurityFilterChain의 이름으로 생성되는 필터 빈이다.
- DelegatingProxyChain 으로 부터 요청을 위임 받고 실제로 보안처리를 한다.
- 스프링 시큐리티 초기화 시 생성되는 필터들을 관리하고 제어한다. (이미지 1 참조 )
- 사용자의 요청을 필터 순서대로 호출하여 전달한다.
- 사용자정의 필터를 생성해서 기존의 필터 전후로 추가가 가능하다.
- 마지막 필터까지 인증 및 인가 예외가 발생하지 않으면 보안 통과한다.