gpt4 book ai didi

spring - 如何使用多个相互调用的自定义过滤器?

转载 作者:行者123 更新时间:2023-12-04 06:43:48 25 4
gpt4 key购买 nike

大家好,我正在使用 Spring Security 3.0.2
我有一个自定义过滤器,它的顺序是最后一个
我想在该过滤器之后添加另一个过滤器,以下配置是否正确?

<custom-filter position="LAST" ref="filter1"/>
<custom-filter after="LAST" ref="filter2"/>

最佳答案

查看我自己的代码后,我注意到我没有使用 'ref' 属性,而是将此标记放在我的 bean 定义中,如下所示:

<bean id="ntlmFilter" class="org.springframework.security.ntlm.samples.failover.NtlmProcessingFilter">
<sec:custom-filter position="NTLM_FILTER" />
<property name="authenticationManager" ref="authenticationManager" />
<property name="retryOnAuthFailure" value="false" />
<property name="securityConfiguration" ref="securityConfiguration" />
</bean>

来源: http://github.com/aloiscochard/spring-security-ntlm-samples/blob/master/spring-security-ntlm-samples-failover/src/main/resources/applicationContext-security.xml

即使是用于 spring-security 2,在版本 3 中的行为也是相同的。

您可以在 org.springframework.security.config.http.SecurityFilters 枚举中找到所有可能的位置:

http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-config/3.0.2.RELEASE/org/springframework/security/config/http/SecurityFilters.java

您可以使用此枚举中已定义的某些位置来定义自定义过滤器的设置顺序。

举个例子:
  • LAST 前一个过滤器,LAST 一个过滤器 (但不是在 LAST 之后!在 LAST 之后没有任何东西!)
  • 或 SWITCH_USER_FILTER 之前的一个过滤器和之后的一个过滤器。

  • 不知道您将标签放在哪里?但我喜欢将它们直接放在过滤器 bean 中……更易于维护 :-)

    希望这有帮助!

    PS:由于位置基于整数,您可以将数字而不是枚举值(警告我们正确的位置编号,查看 SecurityFilters 枚举内部的逻辑),不确定是否接受...

    关于spring - 如何使用多个相互调用的自定义过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931812/

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