インターフェース Authentication
- すべてのスーパーインターフェース:
java.security.Principal
,java.io.Serializable
- すべての既知の実装クラス:
AbstractAuthenticationToken
、AbstractOAuth2TokenAuthenticationToken
、AnonymousAuthenticationToken
、BearerTokenAuthentication
、BearerTokenAuthenticationToken
、CasAssertionAuthenticationToken
、CasAuthenticationToken
、JaasAuthenticationToken
、JwtAuthenticationToken
、OAuth2AuthenticationToken
、OAuth2AuthorizationCodeAuthenticationToken
、OAuth2LoginAuthenticationToken
、OpenIDAuthenticationToken
、PreAuthenticatedAuthenticationToken
、RememberMeAuthenticationToken
、RunAsUserToken
、Saml2Authentication
、Saml2AuthenticationToken
、TestingAuthenticationToken
、UsernamePasswordAuthenticationToken
public interface Authentication extends java.security.Principal, java.io.Serializable
リクエストがAuthenticationManager.authenticate(Authentication)
メソッドによって処理された後の認証リクエストまたは認証済みプリンシパルのトークンを表します。リクエストが認証されると、通常、認証は、使用されている認証メカニズムによって
SecurityContextHolder
によって管理されるスレッドローカルの SecurityContext に保存されます。Spring Security の認証メカニズムのいずれかを使用せずに、認証インスタンスを作成し、コードを使用することにより、明示的な認証を実現できます。SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(anAuthentication); SecurityContextHolder.setContext(context);
Authentication の authenticated プロパティが true に設定されていない限り、セキュリティインターセプター(メソッドまたは Web 呼び出し)によって認証されます。それに遭遇します。ほとんどの場合、フレームワークはセキュリティコンテキストと認証オブジェクトの管理を透過的に行います。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 java.util.Collection<? extends GrantedAuthority>
getAuthorities()
プリンシパルが許可されたことを権限に示すために、AuthenticationManager
によって設定されます。java.lang.Object
getCredentials()
プリンシパルが正しいことを証明する資格情報。java.lang.Object
getDetails()
認証リクエストに関する追加の詳細を保存します。java.lang.Object
getPrincipal()
認証されるプリンシパルの ID。boolean
isAuthenticated()
認証トークンをAuthenticationManager
に提示する必要があるかどうかをAbstractSecurityInterceptor
に示すために使用されます。void
setAuthenticated(boolean isAuthenticated)
詳細については、isAuthenticated()
を参照してください。
メソッドの詳細
getAuthorities
java.util.Collection<? extends GrantedAuthority> getAuthorities()
プリンシパルが許可されたことを権限に示すために、AuthenticationManager
によって設定されます。信頼できるAuthenticationManager
によって設定されていない限り、クラスはこの値が有効であることに依存してはならないことに注意してください。実装では、返されたコレクション配列への変更が認証オブジェクトの状態に影響を与えないようにするか、変更不可能なインスタンスを使用する必要があります。
- 戻り値:
- プリンシパルに付与された権限、またはトークンが認証されていない場合は空のコレクション。非 null。
getCredentials
java.lang.Object getCredentials()
プリンシパルが正しいことを証明する資格情報。これは通常パスワードですが、AuthenticationManager
に関連するものであれば何でもかまいません。発信者は資格情報を入力する必要があります。- 戻り値:
Principal
の身元を証明する資格情報
getDetails
java.lang.Object getDetails()
認証リクエストに関する追加の詳細を保存します。これらは、IP アドレス、証明書のシリアル番号などです。- 戻り値:
- 認証リクエストに関する追加の詳細、または使用しない場合は
null
getPrincipal
java.lang.Object 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 java.lang.IllegalArgumentException
詳細については、isAuthenticated()
を参照してください。実装では、
false
パラメーターを使用してこのメソッドを呼び出すことを常に許可する必要があります。これは、さまざまなクラスで使用され、認証トークンを信頼しないことを指定するためです。実装がtrue
パラメーター(認証トークンが信頼されることを示す - 潜在的なセキュリティリスク)での呼び出しを拒否する場合、実装はIllegalArgumentException
をスローする必要があります。- パラメーター:
isAuthenticated
- トークンを信頼する必要がある場合はtrue
(例外が発生する可能性があります)、トークンを信頼しない場合はfalse
- 例外:
java.lang.IllegalArgumentException
- 実装が不変であるか、isAuthenticated()
への独自の代替アプローチを実装しているため、認証トークンを(引数としてtrue
を渡すことにより)信頼しようとする試みが拒否された場合