【问题标题】:Confusion in Spring Security Filter ChainSpring Security 过滤器链中的困惑
【发布时间】:2013-09-30 16:03:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: java spring spring-security


    【解决方案1】:

    在 spring 3.1 之前,假设你希望允许访问特定的 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-08
      • 2020-11-04
      • 1970-01-01
      • 2013-06-16
      • 2019-12-25
      • 2016-03-08
      • 2013-04-13
      • 2019-04-13
      相关资源
      最近更新 更多