インターフェース Authentication

すべてのスーパーインターフェース:
PrincipalSESerializableSE
すべての既知の実装クラス:
AbstractAuthenticationTokenAbstractOAuth2TokenAuthenticationTokenAnonymousAuthenticationTokenBearerTokenAuthenticationBearerTokenAuthenticationTokenBearerTokenAuthenticationTokenCasAssertionAuthenticationTokenCasAuthenticationTokenCasServiceTicketAuthenticationTokenJaasAuthenticationTokenJwtAuthenticationTokenOAuth2AuthenticationTokenOAuth2AuthorizationCodeAuthenticationTokenOAuth2LoginAuthenticationTokenPreAuthenticatedAuthenticationTokenRememberMeAuthenticationTokenRunAsUserTokenSaml2AuthenticationSaml2AuthenticationTokenTestingAuthenticationTokenUsernamePasswordAuthenticationToken

public interface Authentication extends PrincipalSE, SerializableSE
リクエストが AuthenticationManager.authenticate(Authentication) メソッドによって処理された後の認証リクエストまたは認証済みプリンシパルのトークンを表します。

リクエストが認証されると、通常、認証は、使用されている認証メカニズムによって SecurityContextHolder によって管理されるスレッドローカルの SecurityContext に保存されます。Spring Security の認証メカニズムのいずれかを使用せずに、認証インスタンスを作成し、コードを使用することにより、明示的な認証を実現できます。

 SecurityContext context = SecurityContextHolder.createEmptyContext();
 context.setAuthentication(anAuthentication);
 SecurityContextHolder.setContext(context);
 
Authentication authenticated プロパティが true に設定されていない限り、セキュリティインターセプター(メソッドまたは Web 呼び出し)によって認証されます。それに遭遇します。

ほとんどの場合、フレームワークはセキュリティコンテキストと認証オブジェクトの管理を透過的に行います。

  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    プリンシパルが許可されたことを権限に示すために、AuthenticationManager によって設定されます。
    プリンシパルが正しいことを証明する資格情報。
    認証リクエストに関する追加の詳細を保存します。
    認証されるプリンシパルの ID。
    boolean
    認証トークンを AuthenticationManager に提示する必要があるかどうかを AbstractSecurityInterceptor に示すために使用されます。
    void
    setAuthenticated(boolean isAuthenticated)
    詳細については、isAuthenticated() を参照してください。

    インターフェース java.security.PrincipalSE から継承されたメソッド

    equalsSE, getName, hashCode, impliesSE, toString
  • メソッドの詳細

    • getAuthorities

      CollectionSE<? extends GrantedAuthority> getAuthorities()
      プリンシパルが許可されたことを権限に示すために、AuthenticationManager によって設定されます。信頼できる AuthenticationManager によって設定されていない限り、クラスはこの値が有効であることに依存してはならないことに注意してください。

      実装では、返されたコレクション配列への変更が認証オブジェクトの状態に影響を与えないようにするか、変更不可能なインスタンスを使用する必要があります。

      戻り値:
      プリンシパルに付与された権限、またはトークンが認証されていない場合は空のコレクション。非 null。
    • getCredentials

      ObjectSE getCredentials()
      プリンシパルが正しいことを証明する資格情報。これは通常パスワードですが、AuthenticationManager に関連するものであれば何でもかまいません。発信者は資格情報を入力する必要があります。
      戻り値:
      Principal の身元を証明する資格情報
    • getDetails

      ObjectSE getDetails()
      認証リクエストに関する追加の詳細を保存します。これらは、IP アドレス、証明書のシリアル番号などです。
      戻り値:
      認証リクエストに関する追加の詳細、または使用しない場合は null 
    • getPrincipal

      ObjectSE getPrincipal()
      認証されるプリンシパルの ID。ユーザー名とパスワードを使用した認証リクエストの場合、これはユーザー名になります。呼び出し元は、認証リクエストのプリンシパルを設定することが期待されています。

      多くの場合、 AuthenticationManager 実装は、アプリケーションが使用するプリンシパルとして、より豊富な情報を含む Authentication を返します。認証プロバイダーの多くは、UserDetails オブジェクトをプリンシパルとして作成します。

      戻り値:
      認証される Principal または認証後の認証されたプリンシパル。
    • isAuthenticated

      boolean isAuthenticated()
      認証トークンを AuthenticationManager に提示する必要があるかどうかを AbstractSecurityInterceptor に示すために使用されます。通常、AuthenticationManager (または、より頻繁には、その AuthenticationProvider の 1 つ)は、認証が成功した後、不変の認証トークンを返します。この場合、トークンは true をこのメソッドに安全に返すことができます。true を返すとパフォーマンスが向上します。リクエストごとに AuthenticationManager を呼び出す必要がなくなるためです。

      セキュリティ上の理由から、このインターフェースの実装は、不変であるか、元の作成以降プロパティが変更されていないことを保証する方法がない限り、このメソッドから true を返すことに十分注意する必要があります。

      戻り値:
      トークンが認証され、AbstractSecurityInterceptor が再認証のために再度 AuthenticationManager にトークンを提示する必要がない場合は true。
    • setAuthenticated

      void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentExceptionSE
      詳細については、isAuthenticated() を参照してください。

      実装では、このメソッドが false パラメーターで呼び出されることをに許可する必要があります。これは、認証トークンを信頼しないように指定するためにさまざまなクラスで使用されるためです。実装が true パラメーター (認証トークンが信頼されていることを示します - 潜在的なセキュリティリスク) を使用した呼び出しを拒否したい場合、実装は IllegalArgumentExceptionSE をスローする必要があります。

      パラメーター:
      isAuthenticated - トークンを信頼する必要がある場合は true (例外が発生する可能性があります)、トークンを信頼しない場合は false 
      例外:
      IllegalArgumentExceptionSE - 実装が不変であるか、isAuthenticated() への独自の代替アプローチを実装しているため、認証トークンを(引数として true を渡すことにより)信頼しようとする試みが拒否された場合