gpt4 book ai didi

spring - 我们可以为 filterChainProxy 中的单个过滤器链提供多种模式吗

转载 作者:行者123 更新时间:2023-12-04 17:22:58 25 4
gpt4 key购买 nike

我有两个应用相同过滤器的模式。

<security:filter-chain pattern="/home.do*" filters="a,b,c,d" />
<security:filter-chain pattern="/login.do*" filters="a,b,c,d" />

除了上述两个之外,还有许多其他独特的模式和一个通用模式 /**/*.do*/**

我可以像下面这样在 pattern 属性中指定逗号分隔的多个模式吗:

<security:filter-chain pattern="/home.do*, /login.do*" filters="a,b,c,d" />

最佳答案

是的,你可以,但实现取决于你使用的 Spring Security 版本。

  • 在 3.0 中你可以使用 path-type属性:

    <security:filter-chain-map path-type="regex">
    <security:filter-chain pattern="^/(test|home)\.do$" filters="a,b,c,d" />
    <!-- other patterns -->
    <security:filter-chain-map path-type="regex">
  • 在 3.1 中,您可以使用 request-matcher属性(弃用 path-type,只需将路径类型更改为前面示例中的请求匹配器),或者您可以将多个 http 元素与 request-matcher-ref 一起使用bean 并执行此操作:

    <http pattern="test.do,home.do" security="none" <!-- 'none' as example -->
    request-matcher-ref="requestMatcher" />

    <bean id="requestMatcher" class="com.example.CommaSeparatedRequestMatcher" />

    使用 CommaSeparatedRequestMatcher 的自定义实现(它拆分从请求创建的 URL 并尝试匹配任何字符串),例如,基于 RegexRequestMatcher .

关于spring - 我们可以为 filterChainProxy 中的单个过滤器链提供多种模式吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com