public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider
UserDetailsService からユーザーの詳細を取得する AuthenticationProvider 実装。hideUserNotFoundExceptions, logger, messages| コンストラクターと説明 |
|---|
DaoAuthenticationProvider() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected void | additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) サブクラスが、特定の認証リクエストに対して返された(またはキャッシュされた) UserDetails の追加チェックを実行できるようにします。 |
protected Authentication | createSuccessAuthentication(java.lang.Object principal, Authentication authentication, UserDetails user) 成功した Authentication オブジェクトを作成します。 |
protected void | doAfterPropertiesSet() |
protected PasswordEncoder | getPasswordEncoder() |
protected UserDetailsService | getUserDetailsService() |
protected UserDetails | retrieveUser(java.lang.String username, UsernamePasswordAuthenticationToken authentication) サブクラスが実装固有の場所から UserDetails を実際に取得できるようにします。提示された資格情報が正しくない場合、すぐに AuthenticationException をスローするオプションがあります(これは、ユーザーとしてリソースにバインドする必要がある場合に特に役立ちます。UserDetails を生成します)。 |
void | setPasswordEncoder(PasswordEncoder passwordEncoder) パスワードのエンコードと検証に使用される PasswordEncoder インスタンスを設定します。 |
void | setUserDetailsPasswordService(UserDetailsPasswordService userDetailsPasswordService) |
void | setUserDetailsService(UserDetailsService userDetailsService) |
afterPropertiesSet, authenticate, getPostAuthenticationChecks, getPreAuthenticationChecks, getUserCache, isForcePrincipalAsString, isHideUserNotFoundExceptions, setAuthoritiesMapper, setForcePrincipalAsString, setHideUserNotFoundExceptions, setMessageSource, setPostAuthenticationChecks, setPreAuthenticationChecks, setUserCache, supportsprotected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException
AbstractUserDetailsAuthenticationProviderUserDetails の追加チェックを実行できるようにします。通常、サブクラスは少なくとも Authentication.getCredentials() と UserDetails.getPassword() を比較します。UserDetails および / または UsernamePasswordAuthenticationToken の追加のプロパティを比較するためにカスタムロジックが必要な場合、これらもこのメソッドに表示されます。AbstractUserDetailsAuthenticationProvider の additionalAuthenticationChecks userDetails - AbstractUserDetailsAuthenticationProvider.retrieveUser(String, UsernamePasswordAuthenticationToken) または UserCache から取得したもの authentication - 認証が必要な現在のリクエスト AuthenticationException - 資格情報を検証できなかった場合は AuthenticationException (一般的に BadCredentialsException、AuthenticationServiceException)protected void doAfterPropertiesSet()
AbstractUserDetailsAuthenticationProvider の doAfterPropertiesSet protected final UserDetails retrieveUser(java.lang.String username, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException
AbstractUserDetailsAuthenticationProviderUserDetails を実際に取得できるようにします。提示された資格情報が正しくない場合、すぐに AuthenticationException をスローするオプションがあります(これは、ユーザーとしてリソースにバインドする必要がある場合に特に役立ちます。UserDetails を生成します)。AbstractUserDetailsAuthenticationProvider はデフォルトで UserDetails をキャッシュするため、キャッシュを実行するためにサブクラスは必要ありません。UserDetails のキャッシュは、このメソッドでバインディングベースの戦略を採用するサブクラスによって資格情報の正確性が保証されている場合でも、キャッシュに依存する後続のリクエストがまだ資格情報を検証する必要があるため、さらなる複雑さを示します。サブクラスがキャッシュを無効にすることが重要です(UserDetails がキャッシュされないため、このメソッドがリクエストを認証できる唯一のメソッドであることを確認したい場合)、またはサブクラスが AbstractUserDetailsAuthenticationProvider.additionalAuthenticationChecks(UserDetails, UsernamePasswordAuthenticationToken) を実装してキャッシュされた資格情報を比較することを確認すること UserDetails と後続の認証リクエスト。
ほとんどの場合、サブクラスはこのメソッドで資格情報インスペクションを実行せず、代わりに AbstractUserDetailsAuthenticationProvider.additionalAuthenticationChecks(UserDetails, UsernamePasswordAuthenticationToken) で実行するため、資格情報の検証に関連するコードを 2 つのメソッド間で複製する必要はありません。
AbstractUserDetailsAuthenticationProvider の retrieveUser username - 取得するユーザー名 authentication - サブクラスが UserDetails のバインディングベースの検索を実行する必要があるかもしれない認証リクエスト null - 代わりに例外がスローされます)AuthenticationException - 資格情報を検証できなかった場合 (通常、BadCredentialsException、AuthenticationServiceException または UsernameNotFoundException)protected Authentication createSuccessAuthentication(java.lang.Object principal, Authentication authentication, UserDetails user)
AbstractUserDetailsAuthenticationProviderAuthentication オブジェクトを作成します。サブクラスがオーバーライドできるように保護されています。
サブクラスは通常、返された Authentication オブジェクトにユーザーが提供した元の資格情報(ソルトまたはエンコードされたパスワードではない)を格納します。
AbstractUserDetailsAuthenticationProvider の createSuccessAuthentication principal - それは返されたオブジェクトのプリンシパルでなければなりません (AbstractUserDetailsAuthenticationProvider.isForcePrincipalAsString() メソッドによって定義されます)authentication - 検証のためにプロバイダーに提示された user - 実装によってロードされた public void setPasswordEncoder(PasswordEncoder passwordEncoder)
PasswordEncoderFactories.createDelegatingPasswordEncoder() を使用してパスワードが比較されます passwordEncoder - PasswordEncoder 型のいずれかのインスタンスでなければなりません。protected PasswordEncoder getPasswordEncoder()
public void setUserDetailsService(UserDetailsService userDetailsService)
protected UserDetailsService getUserDetailsService()
public void setUserDetailsPasswordService(UserDetailsPasswordService userDetailsPasswordService)