Spring安全过滤器链中的混乱

时间:2013-09-25 07:15:53

标签: java spring spring-security

我刚开始研究Spring安全性。我正在阅读Spring Security参考指南。这里写的是

  

使用filters =“none”通过在其中创建空过滤器链来运行   Spring Security的FilterChainProxy,而访问属性是   用于在单个过滤器中配置FilterSecurityInterceptor   由命名空间配置创建的链。这两个是   独立应用,所以如果你有一个访问限制   具有filters =“none”属性的模式的子模式   访问约束将被忽略,即使它首先列出。它   无法对模式应用filters =“none”属性/ **   因为命名空间过滤器链使用它。在3.1版中   事情更灵活。您可以定义多个过滤器链和   不再支持filters属性。

有人可以从参考文档中详细说明这个说明吗?

1 个答案:

答案 0 :(得分:2)

在春季3.1之前,假设yopu想要允许访问特定网址/模式,即您不希望在其上应用Spring安全性,您可以添加

<sec:intercept-url pattern="/nonsecure/**" filters="none" />

这里filters = none创建一个空的安全过滤器链,因此Spring资源不会保护此资源。

即使您添加了access属性以及filters =“none”,它也会被igonred。

对于弹簧3.1及更高版本,您可以定义多个过滤器链,如

<security:http pattern="/nonsecure/**" security="none"/>

 <security:http pattern="/secure/**" >
....other security config
</security:http>