내 Spring MVC 앱에서 이것을 본다 web.xml
.
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
나는 그것이 왜 거기에 있고 실제로 필요한지 알아 내려고 노력하고 있습니다.
이 설명은 Spring 문서에서 찾았 지만 이해하는 데 도움이되지 않습니다.
이 컴포넌트가에 정의 된 서블릿 web.xml
과 Spring에 정의 된 컴포넌트 사이의 "접착제"라고 제안하는 것 같습니다 applicationContext.xml
.
7.1 DelegatingFilterProxy
서블릿 필터를 사용할 때 분명히에서 선언해야합니다
web.xml
. 그렇지 않으면 서블릿 컨테이너에서 무시됩니다. Spring Security에서 필터 클래스는 또한 애플리케이션 컨텍스트에 정의 된 Spring Bean이므로 Spring의 풍부한 종속성 주입 기능 및 라이프 사이클 인터페이스를 활용할 수 있습니다. SpringDelegatingFilterProxy
은web.xml
및 애플리케이션 컨텍스트 사이의 링크를 제공합니다 .DelegatingFilterProxy를 사용할 때
web.xml
파일 에 다음과 같은 내용이 표시 됩니다.<filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
필터는 실제로 필터
DelegatingFilterProxy
논리를 구현하는 클래스가 아니라 실제로입니다.DelegatingFilterProxy
Spring 애플리케이션 컨텍스트에서 얻은 빈에 필터의 메서드를 위임하는 것이 무엇입니까? 이를 통해 Bean은 Spring 웹 애플리케이션 컨텍스트 라이프 사이클 지원 및 구성 유연성의 이점을 누릴 수 있습니다. Bean은 구현javax.servlet.Filter
해야하며 filter-name 요소의 이름과 동일한 이름을 가져야합니다. 자세한 정보 는 DelegatingFilterProxy에 대한 Javadoc을 읽으십시오.
그래서, 이것을 내 web.xml
에서 꺼내면 어떻게 될까요? 내 서블릿이 Spring 컨테이너와 통신 할 수 없습니까? **