インターフェース Authentication
- すべてのスーパーインターフェース:
PrincipalSE,SerializableSE
- すべての既知の実装クラス:
AbstractAuthenticationToken、AbstractOAuth2TokenAuthenticationToken、AnonymousAuthenticationToken、BearerTokenAuthentication、BearerTokenAuthenticationToken、CasAssertionAuthenticationToken、CasAuthenticationToken、CasServiceTicketAuthenticationToken、DPoPAuthenticationToken、JaasAuthenticationToken、JwtAuthenticationToken、KerberosServiceRequestToken、KerberosUsernamePasswordAuthenticationToken、OAuth2AccessTokenAuthenticationToken、OAuth2AuthenticationToken、OAuth2AuthorizationCodeAuthenticationToken、OAuth2AuthorizationCodeAuthenticationToken、OAuth2AuthorizationCodeRequestAuthenticationToken、OAuth2AuthorizationConsentAuthenticationToken、OAuth2AuthorizationGrantAuthenticationToken、OAuth2ClientAuthenticationToken、OAuth2ClientCredentialsAuthenticationToken、OAuth2ClientRegistrationAuthenticationToken、OAuth2DeviceAuthorizationConsentAuthenticationToken、OAuth2DeviceAuthorizationRequestAuthenticationToken、OAuth2DeviceCodeAuthenticationToken、OAuth2DeviceVerificationAuthenticationToken、OAuth2LoginAuthenticationToken、OAuth2PushedAuthorizationRequestAuthenticationToken、OAuth2RefreshTokenAuthenticationToken、OAuth2TokenExchangeAuthenticationToken、OAuth2TokenExchangeCompositeAuthenticationToken、OAuth2TokenIntrospectionAuthenticationToken、OAuth2TokenRevocationAuthenticationToken、OidcClientRegistrationAuthenticationToken、OidcLogoutAuthenticationToken、OidcUserInfoAuthenticationToken、OneTimeTokenAuthentication、OneTimeTokenAuthenticationToken、PreAuthenticatedAuthenticationToken、RememberMeAuthenticationToken、RunAsUserToken、Saml2AssertionAuthentication、Saml2Authentication、Saml2AuthenticationToken、TestingAuthenticationToken、UsernamePasswordAuthenticationToken、WebAuthnAuthentication、WebAuthnAuthenticationRequestToken
AuthenticationManager.authenticate(Authentication) メソッドによって処理された後の認証リクエストまたは認証済みプリンシパルのトークンを表します。 リクエストが認証されると、通常、認証は、使用されている認証メカニズムによって SecurityContextHolder によって管理されるスレッドローカルの SecurityContext に保存されます。Spring Security の認証メカニズムのいずれかを使用せずに、認証インスタンスを作成し、コードを使用することにより、明示的な認証を実現できます。
SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(anAuthentication); SecurityContextHolder.setContext(context);Authentication の authenticated プロパティが true に設定されていない限り、セキュリティインターセプター(メソッドまたは Web 呼び出し)によって認証されます。それに遭遇します。
ほとんどの場合、フレームワークはセキュリティコンテキストと認証オブジェクトの管理を透過的に行います。
ネストされたクラスの要約
ネストされたクラス修飾子と型インターフェース説明static interfaceAuthentication.Builder<B extends Authentication.Builder<B>>与えられたAuthenticationインスタンスに基づくビルダーメソッドのサマリー
修飾子と型メソッド説明CollectionSE<? extends GrantedAuthority>プリンシパルが許可されたことを権限に示すために、AuthenticationManagerによって設定されます。@Nullable ObjectSEプリンシパルが正しいことを証明する資格情報。@Nullable ObjectSE認証リクエストに関する追加の詳細を保存します。@Nullable ObjectSE認証されるプリンシパルの ID。boolean認証トークンをAuthenticationManagerに提示する必要があるかどうかをAbstractSecurityInterceptorに示すために使用されます。voidsetAuthenticated(boolean isAuthenticated) 詳細については、isAuthenticated()を参照してください。default Authentication.Builder<?>このインスタンスに基づいてAuthentication.Builderを返します。
メソッドの詳細
getAuthorities
CollectionSE<? extends GrantedAuthority> getAuthorities()プリンシパルが許可されたことを権限に示すために、AuthenticationManagerによって設定されます。信頼できるAuthenticationManagerによって設定されていない限り、クラスはこの値が有効であることに依存してはならないことに注意してください。実装では、返されたコレクション配列への変更が認証オブジェクトの状態に影響を与えないようにするか、変更不可能なインスタンスを使用する必要があります。
- 戻り値:
- プリンシパルに付与された権限、またはトークンが認証されていない場合は空のコレクション。非 null。
getCredentials
@Nullable ObjectSE getCredentials()プリンシパルが正しいことを証明する資格情報。これは通常パスワードですが、AuthenticationManagerに関連するものであれば何でもかまいません。呼び出し元は資格情報を入力する必要があります。- 戻り値:
Principalの身元を証明する資格情報
getDetails
@Nullable ObjectSE getDetails()認証リクエストに関する追加の詳細を保存します。これらは、IP アドレス、証明書のシリアル番号などです。- 戻り値:
- 認証リクエストに関する追加の詳細、または使用しない場合は
null
getPrincipal
@Nullable ObjectSE getPrincipal()認証されるプリンシパルの ID。ユーザー名とパスワードを使用した認証リクエストの場合、これはユーザー名になります。呼び出し元は、認証リクエストのプリンシパルを設定することが期待されています。多くの場合、 AuthenticationManager 実装は、アプリケーションが使用するプリンシパルとして、より豊富な情報を含む Authentication を返します。認証プロバイダーの多くは、
UserDetailsオブジェクトをプリンシパルとして作成します。- 戻り値:
- 認証される
Principalまたは認証後の認証されたプリンシパル。
isAuthenticated
boolean isAuthenticated()認証トークンをAuthenticationManagerに提示する必要があるかどうかをAbstractSecurityInterceptorに示すために使用されます。通常、AuthenticationManager(または、より頻繁には、そのAuthenticationProviderの 1 つ)は、認証が成功した後、不変の認証トークンを返します。この場合、トークンはtrueをこのメソッドに安全に返すことができます。trueを返すとパフォーマンスが向上します。リクエストごとにAuthenticationManagerを呼び出す必要がなくなるためです。セキュリティ上の理由から、このインターフェースの実装は、不変であるか、元の作成以降プロパティが変更されていないことを保証する方法がない限り、このメソッドから
trueを返すことに十分注意する必要があります。- 戻り値:
- トークンが認証され、
AbstractSecurityInterceptorが再認証のために再度AuthenticationManagerにトークンを提示する必要がない場合は true。
setAuthenticated
詳細については、isAuthenticated()を参照してください。実装では、このメソッドが
falseパラメーターで呼び出されることを常に許可する必要があります。これは、認証トークンを信頼しないように指定するためにさまざまなクラスで使用されるためです。実装がtrueパラメーター (認証トークンが信頼されていることを示します - 潜在的なセキュリティリスク) を使用した呼び出しを拒否したい場合、実装はIllegalArgumentExceptionSE をスローする必要があります。- パラメーター:
isAuthenticated- トークンを信頼する必要がある場合はtrue(例外が発生する可能性があります)、トークンを信頼しない場合はfalse- 例外:
IllegalArgumentExceptionSE- 実装が不変であるか、isAuthenticated()への独自の代替アプローチを実装しているため、認証トークンを(引数としてtrueを渡すことにより)信頼しようとする試みが拒否された場合
toBuilder
このインスタンスに基づいてAuthentication.Builderを返します。デフォルトでは、SimpleAuthenticationを構築するビルダーを返します。default方式ではありますが、すべてのAuthentication実装でこれを実装する必要があります。これは、Authentication.Builder.build()が呼び出された際にAuthentication型が保持されることを保証するためです。これは、認証実装にカスタムフィールドが含まれている場合に特に重要です。アプリケーションは
Authenticationインターフェースにコード化することが推奨されており、カスタム情報は多くの場合getPrincipal()値に含まれているため、これは厳密には必要ではありません。- 戻り値:
- このインスタンスに基づいて新しい
Authenticationを構築するためのAuthentication.Builder - 導入:
- 7.0