0

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

使用 filters="none" 通过在 Spring Security 的 FilterChainProxy 中创建一个空的过滤器链来操作,而访问属性用于在由命名空间配置创建的单个过滤器链中配置 FilterSecurityInterceptor。这两者是独立应用的,因此如果您对具有 filters="none" 属性的模式的子模式有访问约束,则访问约束将被忽略,即使它首先列出。不可能将 filters="none" 属性应用到模式 /** 因为这是由命名空间过滤器链使用的。在 3.1 版本中,事情变得更加灵活。您可以定义多个过滤器链,并且不再支持过滤器属性。

有人可以从参考文档中详细说明此注释吗?

4

1 回答 1

2

在 spring 3.1 之前假设 yopu 想要允许访问特定的 url/模式,即你不希望对其应用 spring 安全性,你可以添加

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

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

即使您将访问属性与过滤器 =“无”一起添加,它也会被忽略。

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

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

 <security:http pattern="/secure/**" >
....other security config
</security:http>
于 2013-09-26T09:25:26.940 回答