带有过滤器映射的Spring安全性 - 未使用dispather标记调用过滤器

时间:2018-06-13 08:04:56

标签: java spring-security

我正在使用spring security并添加了一个过滤器映射,如下所示。

我的春季安全配置是:

<http entry-point-ref="httpAuthenticationEntryPoint">
    <intercept-url pattern="/**" method="OPTIONS" access="true"/>
    <intercept-url pattern="/**" access="isAuthenticated()"/>
    <form-login 
        authentication-success-handler-ref="authSuccessHandler"
        authentication-failure-handler-ref="authFailureHandler"/>
    <logout success-handler-ref="httpLogoutSuccessHandler"/>
    <custom-filter before="FORM_LOGIN_FILTER" ref="sessionContextFilter" />
</http>

网络片段中定义的过滤器映射是:

<filter-mapping>
    <filter-name>customFilter</filter-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

问题是,&#34; customFilter&#34;未在登录/注销请求中调用。如果我添加如下所示的url-pattern,那么它被称为

    <url-pattern>/</url-pattern>

知道为什么没有url-pattern就无法工作?

PS:我无法合并&#34; customFilter&#34;弹簧配置可以覆盖弹簧配置,我不希望他们添加与安全无关的自定义过滤器。

1 个答案:

答案 0 :(得分:0)

根据web.xml部署描述符documentationC:\Program Files\Git\mingw64\libexec\git-core元素必须具有<filter-mapping><url-pattern>元素。你忽略了这就是为什么它不起作用