在Authentication Manager中切换认证处理程序

时间:2012-02-29 06:18:50

标签: authentication spring-security jasperserver

我知道有很多关于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>

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

1 个答案:

答案 0 :(得分:0)

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