UserDetailsService is used by DaoAuthenticationProvider for retrieving a username, a password, and other attributes for authenticating with a username and password. Spring Security provides in-memory, JDBC, and caching implementations of UserDetailsService.

You can define custom authentication by exposing a custom UserDetailsService as a bean. For example, the following listing customizes authentication, assuming that CustomUserDetailsService implements UserDetailsService:

This is only used if the AuthenticationManagerBuilder has not been populated and no AuthenticationProviderBean is defined.

Custom UserDetailsService Bean
  • Java

  • XML

  • Kotlin

CustomUserDetailsService customUserDetailsService() {
	return new CustomUserDetailsService();
<b:bean class="example.CustomUserDetailsService"/>
fun customUserDetailsService() = CustomUserDetailsService()