当前位置: 首页 > 知识库问答 >
问题:

Spring Security过滤链中的混乱

沈枫涟
2023-03-14

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

有谁能从参考文档中详细说明一下这个注释吗?

共有1个答案

权弘新
2023-03-14

在Spring3.1之前,假设yopu希望允许访问特定的URL/模式,即您不希望在其上应用Spring Security性,您可以添加

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

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

即使您将access属性与filters=“none”一起添加,它也会被iGonred。

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

 <security:http pattern="/secure/**" >
....other security config
</security:http>
 类似资料:
  • 主要内容:FilterChain 接口,Filter 链的拦截过程,Filter 链中 Filter 的执行顺序,示例在 Web 应用中,可以部署多个 Filter,若这些 Filter 都拦截同一目标资源,则它们就组成了一个 Filter 链(也称过滤器链)。过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求在这些过滤器之间传递,直到传递给目标资源。 FilterChain 接口 javax.servlet 包中提供了一个 FilterChain 接口,该接口由容器实现。容器将其实例对象

  • 问题内容: 我的应用程序中有2个过滤器。根据某些条件,我想选择是否执行第二个过滤器。有没有办法做到这一点? 我做了一些谷歌搜索,但没有成功。我希望请求继续执行而不执行第二个过滤器。那可能吗? 任何帮助将不胜感激。 问题答案: 您可以在请求中设置一个属性,然后在第二个过滤器中对其进行检查。 您可以像这样简化上面的代码: 这样,您只需检查属性“ executeSecondFilter”的存在

  • 我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与

  • 当我调用我的服务时,我的这个URL: 我有这个堆栈跟踪: 什么是平均健康有一个空的筛选器列表?

  • 如果我使用而不是,链接是否会改变结果? 我尝试了几千条记录,结果在几次迭代中都是一致的。但由于这涉及到线程(我找不到足够的相关材料来讨论这种组合),我想双重确保并行流不会以任何方式影响过滤器链接的输出。示例代码: