2017-02-09 19 views
0

私はSpring Securityで認証プロバイダを使用しました。私は2つの認証プロバイダを持っています:LocalAuthenticationProviderRemoteAuthenticationProvider。ローカル認証が渡された場合、認証フローは、ローカルDBでそのSpring Securityは、最初のプロバイダが失敗した場合でも、別の認証プロバイダを呼び出します。

  1. アプリケーションをチェック資格
  2. ある 資格を認証するためにRESTful Webサービスを呼び出す必要があります。
  3. ローカル認証が失敗した場合は、 認証に失敗し、応答401とします。
@Override 
protected void configure(
    AuthenticationManagerBuilder auth) throws Exception { 
    auth.authenticationProvider(localProvider).authenticationProvider(remoteProvider); 
} 

LocalAuthenticationProvider資格が失敗した場合AuthenticationExceptionをスローします。資格情報がpassedの場合、nullを返します。

私の問題は、RemoteAuthenticationProviderでも、LocalAuthenticationProviderは、failedです。

RemoteAuthenticationProviderAuthenticationManagerBuilderから削除すると、LocalAuthenticationProviderfailedになります。

この認証フローをどのように達成できますか。これらの2つのプロバイダはお互いに依存しています。あなたの最初のプロバイダがAccountStatusExceptionをスローするようにした場合、認証が第二プロバイダに進まないであろうと思われるProviderManagerのJavadocを見てみると

答えて

関連する問題