代码之家  ›  专栏  ›  技术社区  ›  Mahmoud Saleh

如何使用多个相互调用的自定义筛选器?

  •  2
  • Mahmoud Saleh  · 技术社区  · 15 年前

    大家好,我使用的是SpringSecurity3.0.2 我想在这个过滤器之后再添加一个过滤器,下面的配置正确吗?

    <custom-filter position="LAST" ref="filter1"/>
    <custom-filter after="LAST" ref="filter2"/>
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Alois Cochard    15 年前

    在查看了我自己的代码之后,我注意到我没有使用'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

    即使是针对SpringSecurity2,在版本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

    例如:

    • 先过滤后过滤
    • 或者在切换用户过滤器之前和之后各设置一个过滤器。

    希望能帮上忙!