Class InMemoryUserDetailsManager
- java.lang.Object
-
- org.springframework.security.provisioning.InMemoryUserDetailsManager
-
- All Implemented Interfaces:
UserDetailsPasswordService
,UserDetailsService
,UserDetailsManager
public class InMemoryUserDetailsManager extends java.lang.Object implements UserDetailsManager, UserDetailsPasswordService
Non-persistent implementation ofUserDetailsManager
which is backed by an in-memory map.Mainly intended for testing and demonstration purposes, where a full blown persistent system isn't required.
- Since:
- 3.1
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.Log
logger
-
Constructor Summary
Constructors Constructor Description InMemoryUserDetailsManager()
InMemoryUserDetailsManager(java.util.Collection<UserDetails> users)
InMemoryUserDetailsManager(java.util.Properties users)
InMemoryUserDetailsManager(UserDetails... users)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
changePassword(java.lang.String oldPassword, java.lang.String newPassword)
Modify the current user's password.void
createUser(UserDetails user)
Create a new user with the supplied details.void
deleteUser(java.lang.String username)
Remove the user with the given login name from the system.UserDetails
loadUserByUsername(java.lang.String username)
Locates the user based on the username.void
setAuthenticationManager(AuthenticationManager authenticationManager)
void
setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy)
Sets theSecurityContextHolderStrategy
to use.UserDetails
updatePassword(UserDetails user, java.lang.String newPassword)
Modify the specified user's password.void
updateUser(UserDetails user)
Update the specified user.boolean
userExists(java.lang.String username)
Check if a user with the supplied login name exists in the system.
-
-
-
Constructor Detail
-
InMemoryUserDetailsManager
public InMemoryUserDetailsManager()
-
InMemoryUserDetailsManager
public InMemoryUserDetailsManager(java.util.Collection<UserDetails> users)
-
InMemoryUserDetailsManager
public InMemoryUserDetailsManager(UserDetails... users)
-
InMemoryUserDetailsManager
public InMemoryUserDetailsManager(java.util.Properties users)
-
-
Method Detail
-
createUser
public void createUser(UserDetails user)
Description copied from interface:UserDetailsManager
Create a new user with the supplied details.- Specified by:
createUser
in interfaceUserDetailsManager
-
deleteUser
public void deleteUser(java.lang.String username)
Description copied from interface:UserDetailsManager
Remove the user with the given login name from the system.- Specified by:
deleteUser
in interfaceUserDetailsManager
-
updateUser
public void updateUser(UserDetails user)
Description copied from interface:UserDetailsManager
Update the specified user.- Specified by:
updateUser
in interfaceUserDetailsManager
-
userExists
public boolean userExists(java.lang.String username)
Description copied from interface:UserDetailsManager
Check if a user with the supplied login name exists in the system.- Specified by:
userExists
in interfaceUserDetailsManager
-
changePassword
public void changePassword(java.lang.String oldPassword, java.lang.String newPassword)
Description copied from interface:UserDetailsManager
Modify the current user's password. This should change the user's password in the persistent user repository (datbase, LDAP etc).- Specified by:
changePassword
in interfaceUserDetailsManager
- Parameters:
oldPassword
- current password (for re-authentication if required)newPassword
- the password to change to
-
updatePassword
public UserDetails updatePassword(UserDetails user, java.lang.String newPassword)
Description copied from interface:UserDetailsPasswordService
Modify the specified user's password. This should change the user's password in the persistent user repository (database, LDAP etc).- Specified by:
updatePassword
in interfaceUserDetailsPasswordService
- Parameters:
user
- the user to modify the password fornewPassword
- the password to change to, encoded by the configuredPasswordEncoder
- Returns:
- the updated UserDetails with the new password
-
loadUserByUsername
public UserDetails loadUserByUsername(java.lang.String username) throws UsernameNotFoundException
Description copied from interface:UserDetailsService
Locates the user based on the username. In the actual implementation, the search may possibly be case sensitive, or case insensitive depending on how the implementation instance is configured. In this case, theUserDetails
object that comes back may have a username that is of a different case than what was actually requested..- Specified by:
loadUserByUsername
in interfaceUserDetailsService
- Parameters:
username
- the username identifying the user whose data is required.- Returns:
- a fully populated user record (never
null
) - Throws:
UsernameNotFoundException
- if the user could not be found or the user has no GrantedAuthority
-
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy)
Sets theSecurityContextHolderStrategy
to use. The default action is to use theSecurityContextHolderStrategy
stored inSecurityContextHolder
.- Since:
- 5.8
-
setAuthenticationManager
public void setAuthenticationManager(AuthenticationManager authenticationManager)
-
-