Spring DelegatingFilterProxy
OncePerRequestFilter 를 사용자 정의 하면 웹. xml 에 차단 이나 로그 작업 을 설정 할 수 있 습 니 다.
문 제 는 어떻게 spring filter bean 을 웹. xml 에 주입 합 니까?
Spring Security 에 이런 예 가 있 는 것 으로 밝 혀 졌 다.나 는 소스 코드 를 읽 었 다.아래 와 같이 발견 되 었 습 니 다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-security.xml
</param-value>
</context-param>
<!-- Spring Security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
그 중에서 도 Delegating FilterProxy 라 는 종 류 를 발견 했다.그리고 이 class 의 source 를 읽 었 습 니 다.
선택 은 다음 과 같 습 니 다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// Lazily initialize the delegate if necessary.
Filter delegateToUse = this.delegate;
if (delegateToUse == null) {
synchronized (this.delegateMonitor) {
if (this.delegate == null) {
// applicationContext
WebApplicationContext wac = findWebApplicationContext();
if (wac == null) {
throw new IllegalStateException("No WebApplicationContext found: no ContextLoaderListener registered?");
}
//
this.delegate = initDelegate(wac);
}
delegateToUse = this.delegate;
}
}
// Let the delegate perform the actual doFilter operation.
invokeDelegate(delegateToUse, request, response, filterChain);
}
그래서 또렷 해 졌 다.
기본 적 인 설정 은 웹. xml 에서 listener 를 설정 하여 spring application context 를 초기 화 하 는 것 입 니 다.
그리고 Delegating FilterProxy, 포장 에이전트 FilterBean 을 설정 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.