Package org.springframework.security.provisioning

# Interface UserDetailsManager

All Superinterfaces:
  `UserDetailsService`

All Known Implementing Classes:
  `InMemoryUserDetailsManager`, `JdbcUserDetailsManager`

public interface UserDetailsManager extends UserDetailsService
An extension of the `UserDetailsService` which provides the ability to create new users and update existing ones.

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`void`
`changePassword(String oldPassword, String newPassword)`
Modify the current user's password.
`void`
`createUser(UserDetails user)`
Create a new user with the supplied details.
`void`
`deleteUser(String username)`
Remove the user with the given login name from the system.
`void`
`updateUser(UserDetails user)`
Update the specified user.
`boolean`
`userExists(String username)`
Check if a user with the supplied login name exists in the system.

### Methods inherited from interface org.springframework.security.core.userdetails.UserDetailsService

`loadUserByUsername`

## Method Details

### createUser

void createUser(UserDetails user)
Create a new user with the supplied details.

### updateUser

void updateUser(UserDetails user)
Update the specified user.

### deleteUser

void deleteUser(String username)
Remove the user with the given login name from the system.

### changePassword

void changePassword(String oldPassword, String newPassword)
Modify the current user's password. This should change the user's password in the persistent user repository (database, LDAP etc).

Parameters:
  `oldPassword` - current password (for re-authentication if required)
  `newPassword` - the password to change to

### userExists

boolean userExists(String username)
Check if a user with the supplied login name exists in the system.