Skip to content

Latest commit

 

History

History
22 lines (14 loc) · 2.68 KB

dao-authentication-provider.adoc

File metadata and controls

22 lines (14 loc) · 2.68 KB

DaoAuthenticationProvider

{security-api-url}org/springframework/security/authentication/dao/DaoAuthenticationProvider.html[DaoAuthenticationProvider] is an AuthenticationProvider implementation that uses a UserDetailsService and PasswordEncoder to authenticate a username and password.

This section examines how DaoAuthenticationProvider works within Spring Security. The following figure explains the workings of the AuthenticationManager in figures from the Reading the Username & Password section.

daoauthenticationprovider
Figure 1. DaoAuthenticationProvider Usage

number 1 The authentication Filter from the Reading the Username & Password section passes a UsernamePasswordAuthenticationToken to the AuthenticationManager, which is implemented by ProviderManager.

number 2 The ProviderManager is configured to use an AuthenticationProvider of type DaoAuthenticationProvider.

number 3 DaoAuthenticationProvider looks up the UserDetails from the UserDetailsService.

number 4 DaoAuthenticationProvider uses the PasswordEncoder to validate the password on the UserDetails returned in the previous step.

number 5 When authentication is successful, the Authentication that is returned is of type UsernamePasswordAuthenticationToken and has a principal that is the UserDetails returned by the configured UserDetailsService. Ultimately, the returned UsernamePasswordAuthenticationToken is set on the SecurityContextHolder by the authentication Filter.