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 に設定されます。