クラス OpaqueTokenAuthenticationProvider

java.lang.ObjectSE
org.springframework.security.oauth2.server.resource.authentication.OpaqueTokenAuthenticationProvider
実装されたすべてのインターフェース:
AuthenticationProvider

public final class OpaqueTokenAuthenticationProvider extends ObjectSE implements AuthenticationProvider
不透明なベアラートークンAuthenticationProvider 実装。OAuth 2.0 イントロスペクションエンドポイントを使用してトークンの有効性を確認し、その属性を明らかにします。

この AuthenticationProvider は、不透明なアクセストークンのイントロスペクトと検証を行い、Authentication ステートメントの一部として設定された属性を返します。

スコープは、次のアルゴリズムに従って GrantedAuthority に変換されます。

  1. "scope" 属性 がある場合は、StringSECollectionSE に変換します。
  2. 結果の CollectionSE を取得し、"SCOPE_" キーワードを各要素の先頭に追加して、GrantedAuthority として追加します。

OpaqueTokenIntrospector は、認可サーバーからトークン属性を取得するロールを果たします。

OpaqueTokenAuthenticationConverter は、成功したイントロスペクションの結果を Authentication インスタンスに変換する責任があります (これには、トークン属性からの GrantedAuthority のマッピングまたは別のソースからの取得が含まれる場合があります)。

導入:
5.2
関連事項:
  • コンストラクターの詳細

    • OpaqueTokenAuthenticationProvider

      public OpaqueTokenAuthenticationProvider(OpaqueTokenIntrospector introspector)
      指定されたパラメーターで OpaqueTokenAuthenticationProvider を作成します
      パラメーター:
      introspector - 使用する OpaqueTokenIntrospector
  • メソッドの詳細

    • authenticate

      public Authentication authenticate(Authentication authentication) throws AuthenticationException
      不透明なベアラートークンをイントロスペクトして検証し、Authentication のインスタンス化を OpaqueTokenAuthenticationConverter に委譲します。

      作成された認証が AbstractAuthenticationToken のインスタンスで詳細が null の場合、イントロスペクション結果の詳細が使用されます。

      次で指定:
      インターフェース AuthenticationProviderauthenticate 
      パラメーター:
      authentication - 認証リクエストオブジェクト。
      戻り値:
      成功した認証
      例外:
      AuthenticationException - 何らかの理由で認証に失敗した場合
    • supports

      public boolean supports(ClassSE<?> authentication)
      インターフェースからコピーされた説明: AuthenticationProvider
      この AuthenticationProvider が指定された Authentication オブジェクトをサポートする場合、true を返します。

      true を返しても、AuthenticationProvider が提示された Authentication オブジェクトを認証できることは保証されません。これは単に、より詳細な評価をサポートできることを示しているだけです。AuthenticationProvider は、AuthenticationProvider.authenticate(Authentication) メソッドから null を返して、別の AuthenticationProvider を試す必要があることを示すことができます。

      認証を実行できる AuthenticationProvider の選択は、実行時に ProviderManager で行われます。

      次で指定:
      インターフェース AuthenticationProvidersupports 
      戻り値:
      実装が提示された Authentication クラスをより厳密に評価できる場合は true 
    • setAuthenticationConverter

      public void setAuthenticationConverter(OpaqueTokenAuthenticationConverter authenticationConverter)
      カスタム Bean を提供して、成功したイントロスペクション結果を選択した Authentication インスタンスに変換します。デフォルトでは、BearerTokenAuthentication がビルドされます。
      パラメーター:
      authenticationConverter - 使用するコンバーター
      導入:
      5.8