【问题标题】:Switch Authentication Handler in Authentication Manager在身份验证管理器中切换身份验证处理程序
【发布时间】:2012-02-29 22:42:14
【问题描述】:

我知道有很多关于 Spring Security 的文档。但是,我无法找到问题的答案。

据我了解,以下配置将使身份验证管理器遍历每个身份验证提供程序,除非找到匹配项。

<bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager">
    <property name="providers">
        <list>
            <ref local="ldapAuthenticationProvider"/>
            <ref bean="${bean.daoAuthenticationProvider}"/>
            <ref bean="anonymousAuthenticationProvider"/>

        </list>
    </property>
</bean>

但是,我想根据请求参数在可用提供者之间切换,而不是尝试所有提供者。我想知道是否可以使用过滤器或任何其他方式进行切换?

【问题讨论】:

    标签: authentication spring-security jasperserver


    【解决方案1】:

    子类ProviderManager 并覆盖getProviders()。因为getProviders() 不接受任何参数,所以您需要在过滤器链中的某处设置ThreadLocal,并带有请求或请求具有您想要的参数的标志。

    【讨论】:

    • 我完全放弃了这样做的想法。所以不确定这个答案是否真的有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2015-06-09
    • 1970-01-01
    • 2012-01-20
    • 2011-09-18
    • 1970-01-01
    • 2017-06-22
    相关资源
    最近更新 更多