首页 文章

Spring安全过滤器链中的混乱

提问于
浏览
0

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

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

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

1 回答

  • 2

    在 Spring 季3.1之前,假设yopu想要允许访问特定的url /模式,即你不想在其上应用spring security,你可以添加

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

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

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

    对于 spring 3.1及以上,您可以定义多个过滤器链

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

相关问题