最新の安定バージョンについては、Spring Security 6.4.5 を使用してください! |
DaoAuthenticationProvider
DaoAuthenticationProvider
(Javadoc) は、UserDetailsService
および PasswordEncoder
を利用してユーザー名とパスワードを認証する AuthenticationProvider
実装です。
DaoAuthenticationProvider
が Spring Security 内でどのように機能するかを見てみましょう。この図は、ユーザー名とパスワードの読み取りの図で AuthenticationManager
がどのように機能するかの詳細を説明しています。
DaoAuthenticationProvider
の使用箇所 ユーザー名とパスワードの読み取りからの認証 Filter
は、ProviderManager
によって実装される AuthenticationManager
に UsernamePasswordAuthenticationToken
を渡します。
ProviderManager
は、型 DaoAuthenticationProvider
の AuthenticationProvider を使用するように構成されています。
DaoAuthenticationProvider
は UserDetailsService
から UserDetails
を検索します。
次に、DaoAuthenticationProvider
は PasswordEncoder
を使用して、前の手順で返された UserDetails
のパスワードを検証します。
認証が成功すると、返される Authentication
は型 UsernamePasswordAuthenticationToken
であり、構成された UserDetailsService
によって返される UserDetails
であるプリンシパルを持ちます。最終的に、返された UsernamePasswordAuthenticationToken
は認証 Filter
によって SecurityContextHolder
に設定されます。