Spring Security自定义过滤器免除

时间:2014-08-30 07:30:21

标签: java spring spring-security

我有一个spring security,它有这样的配置。

<security:http use-expressions="true" create-session="stateless"
        entry-point-ref="loginAuthenticationEntryPoint">
        <security:custom-filter ref="preAuthFilter" position="PRE_AUTH_FILTER"/>

        <security:intercept-url pattern="/product/test/**" access="permitAll"/>
        <security:intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>       


</security:http>

我的preAuthFilter会过滤所有请求,如果收到的xml格式错误,则会抛出错误消息,但我希望获得免税。例如,我想添加另一个<security:intercept-url />,它有自己的custom-filter
或者是否可以有另一个认证入口点?然后我将添加我的自定义过滤器 怎么能实现这个?有任何想法吗?
感谢。

1 个答案:

答案 0 :(得分:1)

没有模式属性的security:http标记默认为所有请求。您可以添加另一个security:http,其pattern属性指向特定的网址格式,并将其声明在您已经拥有的security:http上方,因为应该首先声明更具体的一个。{1}}。在那里,您可以再次为特定网址配置过滤器。 Spring Security首先使用security:http中声明的模式检查传入的URL。如果不匹配,则会绕过security:http内部的其他配置,并有效地移动到下一个security:http ,而不会 pattern属性。