【问题标题】:Multiple pre-auth filters in Spring Security?Spring Security中的多个预授权过滤器?
【发布时间】:2011-10-29 06:29:42
【问题描述】:

我需要多个PRE_AUTH Spring Security 过滤器。特别是,除了在 Spring Security 3.0 的 SAML 扩展中配置为 PRE_AUTH 的两个过滤器之外,我还需要使用 PRE_AUTH 过滤器。现有的 SAML 配置如下。

<security:http entry-point-ref="samlEntryPoint">
    <!-- snip intercepts -->
    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlProcessingFilter"/>
    <security:custom-filter before="PRE_AUTH_FILTER" ref="samlEntryPoint"/>
    <security:custom-filter position="PRE_AUTH_FILTER" ref="metadataFilter"/>
    <security:custom-filter after="LOGOUT_FILTER" ref="samlLogoutFilter"/>
    <security:custom-filter before="LOGOUT_FILTER" ref="samlLogoutProcessingFilter"/>
</security:http>

额外的PRE_AUTH 过滤器需要在任何一个现有过滤器之前进行检查(即:不应让使用此身份验证方法进行身份验证的用户有机会使用 SAML。

我考虑用以下方式改变它。

<!-- snip -->
<security:custom-filter before="PRE_AUTH_FILTER" ref="newPreAuthFilter"/>
<security:custom-filter position="PRE_AUTH_FILTER" ref="samlEntryPoint"/>
<security:custom-filter after="PRE_AUTH_FILTER" ref="metadataFilter"/>
<!-- snip -->

这是否可行,或者需要更复杂的解决方案。

【问题讨论】:

    标签: spring-security saml pre-authentication spring-saml


    【解决方案1】:

    非常古老的问题,但仍然相关。使用 spring 中的复合过滤器:

    <security:custom-filter before="PRE_AUTH_FILTER" ref="compositeAuthFilter"/>
    
    <bean id="compositeAuthFilter" class="org.springframework.web.filter.CompositeFilter">
        <property name="filters">
            <list>
                <ref bean="airlockAuthFilter"/>
                <ref bean="samlEntryPoint"/>
                <ref bean="metadataFilter"/>
            </list>
        </property>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2015-12-17
      • 2019-04-13
      • 1970-01-01
      • 2023-03-05
      • 2014-11-04
      • 2021-10-31
      • 2018-12-11
      • 1970-01-01
      相关资源
      最近更新 更多