# UserDetailsService

[`UserDetailsService`]（https://DOCS. Spring.io/ Spring-security/site/DOCS/5.6.2/api/org/springframework/security/core/userdetails/userdetails.html）是[`DaoAuthenticationProvider`]（DAO-Authentication-provider.html# Servlet-Authentication-DAOAuthenticationationationProvider）用于检索用户名、密码和其他属性，以进行用户名和密码的身份验证。 Spring 安全性提供[in-memory](in-memory.html#servlet-authentication-inmemory)和[JDBC](jdbc.html#servlet-authentication-jdbc)`UserDetailsService`的实现。

可以通过将自定义`UserDetailsService`公开为 Bean 来定义自定义身份验证。例如，下面将在假设`CustomUserDetailsService`实现`UserDetailsService`的情况下定制身份验证：

|   |这仅在`AuthenticationManagerBuilder`尚未填充且没有定义`AuthenticationProviderBean`时使用。|
|---|------------------------------------------------------------------------------------------------------------------------------|

例 1。自定义用户详细服务 Bean

爪哇

```
@Bean
CustomUserDetailsService customUserDetailsService() {
	return new CustomUserDetailsService();
}
```

XML

```
<b:bean class="example.CustomUserDetailsService"/>
```

Kotlin

```
@Bean
fun customUserDetailsService() = CustomUserDetailsService()
```

[用户详细信息](user-details.html)[PasswordEncoder ](password-encoder.html)

