2012-02-29 11 views
1

私は、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

サブクラスProviderManagerとオーバーライドgetProviders()です。 getProviders()は任意のパラメータを取らないので、要求またはパラメータに必要なパラメータを持つフラグを使用して、フィルタチェーンのどこかにThreadLocalを設定する必要があります。

+0

私はこれを行うという完全な考えを落としました。この答えが本当にうまくいくかどうかは分かりません。 –

関連する問題