DaoAuthenticationProvider
DaoAuthenticationProvider
(Javadoc) は、UserDetailsService
と PasswordEncoder
を使用してユーザー名とパスワードを認証する AuthenticationProvider
実装です。
このセクションでは、Spring Security 内で DaoAuthenticationProvider
がどのように機能するかを調べます。次の図は、ユーザー名とパスワードの読み取りセクションの図で AuthenticationManager
の動作を説明しています。
DaoAuthenticationProvider
の使用箇所 ユーザー名とパスワードの読み取りセクションからの認証 Filter
は、UsernamePasswordAuthenticationToken
を AuthenticationManager
に渡します。AuthenticationManager
は、ProviderManager
によって実装されます。
ProviderManager
は、型 DaoAuthenticationProvider
の AuthenticationProvider を使用するように構成されています。
DaoAuthenticationProvider
は UserDetailsService
から UserDetails
を検索します。
DaoAuthenticationProvider
は、PasswordEncoder
を使用して、前のステップで返された UserDetails
のパスワードを検証します。
認証が成功すると、返される Authentication
は型 UsernamePasswordAuthenticationToken
であり、構成された UserDetailsService
によって返される UserDetails
であるプリンシパルを持ちます。最終的に、返された UsernamePasswordAuthenticationToken
は、認証 Filter
によって SecurityContextHolder
に設定されます。