我知道有很多关于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>
但是,我希望根据请求参数切换可用的提供程序,而不是尝试所有提供程序。我想知道是否可以使用过滤器或任何其他方式进行切换?
答案 0 :(得分:0)
子类ProviderManager
并覆盖getProviders()
。由于getProviders()
不接受任何参数,因此您需要在过滤器链中的某处设置ThreadLocal
请求或请求具有所需参数的标志。