You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.6 KiB
44 lines
1.6 KiB
[[servlet-authentication-userdetailsservice]] |
|
= UserDetailsService |
|
|
|
javadoc:org.springframework.security.core.userdetails.UserDetailsService[] is used by xref:servlet/authentication/passwords/dao-authentication-provider.adoc#servlet-authentication-daoauthenticationprovider[`DaoAuthenticationProvider`] for retrieving a username, a password, and other attributes for authenticating with a username and password. |
|
Spring Security provides xref:servlet/authentication/passwords/in-memory.adoc#servlet-authentication-inmemory[in-memory], xref:servlet/authentication/passwords/jdbc.adoc#servlet-authentication-jdbc[JDBC], and xref:servlet/authentication/passwords/caching.adoc#servlet-authentication-caching-user-details[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`: |
|
|
|
[NOTE] |
|
==== |
|
This is only used if the `AuthenticationManagerBuilder` has not been populated and no `AuthenticationProviderBean` is defined. |
|
==== |
|
|
|
.Custom UserDetailsService Bean |
|
[tabs] |
|
====== |
|
Java:: |
|
+ |
|
[source,java,role="primary"] |
|
---- |
|
@Bean |
|
CustomUserDetailsService customUserDetailsService() { |
|
return new CustomUserDetailsService(); |
|
} |
|
---- |
|
|
|
XML:: |
|
+ |
|
[source,java,role="secondary"] |
|
---- |
|
<b:bean class="example.CustomUserDetailsService"/> |
|
---- |
|
|
|
Kotlin:: |
|
+ |
|
[source,kotlin,role="secondary"] |
|
---- |
|
@Bean |
|
fun customUserDetailsService() = CustomUserDetailsService() |
|
---- |
|
====== |
|
|
|
// FIXME: Add CustomUserDetails example with links to @AuthenticationPrincipal
|
|
|