내 SpringSecurityFilter 하위 클래스에서 doFilterHttp가 각 요청에 대해 두 번 호출되는 이유에 대한 아이디어가 있습니까? 나는 어디에서부터 시작해야할지 정말로 모른다. 조금 덜컹 거리다.(스프링 보안) 서블릿 필터가 두 번 호출되는 이유는 무엇입니까?
나는 휴가중인 동료의 코드를 리버스 엔지니어링합니다. web.xml에
: 스프링 security.xml에서
<filter>
<filter-name>userSecurityFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>userSecurityFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>userSecurityFilter</filter-name>
<url-pattern>/json/*</url-pattern>
:
<!-- Create the filter chains for developers, users and services -->
<bean id="userSecurityFilter" class="org.springframework.security.util.FilterChainProxy">
<security:filter-chain-map path-type="ant">
<security:filter-chain pattern="/**/json/*" filters="AuthFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor"/>
<security:filter-chain pattern="/**/*.do" filters="AuthFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor"/>
<security:filter-chain pattern="/**" filters="anonymousProcessingFilter,logoutFilter,exceptionTranslationFilter,filterInvocationInterceptor"/>
</security:filter-chain-map>
</bean>
그것은처럼 보인다 나는 그것을 이해할 수있는 최선에, 여기에 관련된 구성입니다/**/json/* URL은 필터 체인을 두 번 적용하는 반면, 다른 필터 체인은 한 번만 가져옵니다. 나는 돌아가서 방금 말한 것이 정말로 진실인지 확인하려고 할 것입니다.
업데이트 - 모든 URL에서 업데이트되지 않습니다. URL A에서는 한 번 호출됩니다. URL B에서 두 번 호출됩니다. – morgancodes