Package io.jmix.securitydata.user
Class AbstractDatabaseUserRepository<T extends org.springframework.security.core.userdetails.UserDetails>
java.lang.Object
io.jmix.securitydata.user.AbstractDatabaseUserRepository<T>
- Type Parameters:
T- type of entity representing users
- All Implemented Interfaces:
UserManager,UserRepository,org.springframework.security.core.userdetails.UserDetailsService
public abstract class AbstractDatabaseUserRepository<T extends org.springframework.security.core.userdetails.UserDetails>
extends Object
implements UserRepository, UserManager
Base implementation of
UserRepository that loads users from the database.
The type of entity representing users is specified in the getUserClass() method.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassHelps create authorities from roles. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected UnconstrainedDataManagerprotected org.springframework.context.ApplicationEventPublisherprotected Metadataprotected org.springframework.security.crypto.password.PasswordEncoderprotected ResourceRoleRepositoryprotected RoleAssignmentRepositoryprotected RowLevelRoleRepositoryprotected org.springframework.security.web.authentication.rememberme.PersistentTokenRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangePassword(String userName, String oldPassword, String newPassword) Changes the password for the specific user.protected TCreates the built-in 'anonymous' user.protected Collection<? extends org.springframework.security.core.GrantedAuthority>createAuthorities(String username) protected org.springframework.security.core.GrantedAuthoritycreateAuthority(RoleAssignment roleAssignment) protected TCreates the built-in 'system' user.Returns the built-in 'anonymous' user.getByUsernameLike(String substring) Returns the list of users whose username contains the given substring.Returns a builder that helps create authorities from roles.Returns the built-in 'system' user.Returns the class of a JPA entity representing users in the application.protected voidinitAnonymousUser(T anonymousUser) Initializes the built-in 'anonymous' user.protected voidinitSystemUser(T systemUser) Initializes the built-in 'system' user.protected booleanisUserDisabled(EntityChangedEvent<? extends org.springframework.security.core.userdetails.UserDetails> event) loadUserByUsername(String username) loadUsersByUsernameFromDatabase(String username) resetPasswords(Set<org.springframework.security.core.userdetails.UserDetails> users) Changes the password for the specific user.voidresetRememberMe(Collection<org.springframework.security.core.userdetails.UserDetails> users) Resets 'remember me' token for the specific user.
-
Field Details
-
dataManager
-
metadata
-
resourceRoleRepository
-
rowLevelRoleRepository
-
roleAssignmentRepository
-
passwordEncoder
@Autowired protected org.springframework.security.crypto.password.PasswordEncoder passwordEncoder -
tokenRepository
@Autowired protected org.springframework.security.web.authentication.rememberme.PersistentTokenRepository tokenRepository -
eventPublisher
@Autowired protected org.springframework.context.ApplicationEventPublisher eventPublisher
-
-
Constructor Details
-
AbstractDatabaseUserRepository
public AbstractDatabaseUserRepository()
-
-
Method Details
-
getUserClass
Returns the class of a JPA entity representing users in the application. -
createSystemUser
Creates the built-in 'system' user. -
initSystemUser
Initializes the built-in 'system' user. Override in the application to grant authorities or initialize attributes. -
createAnonymousUser
Creates the built-in 'anonymous' user. -
initAnonymousUser
Initializes the built-in 'anonymous' user. Override in the application to grant authorities or initialize attributes. -
getSystemUser
Description copied from interface:UserRepositoryReturns the built-in 'system' user.- Specified by:
getSystemUserin interfaceUserRepository
-
getAnonymousUser
Description copied from interface:UserRepositoryReturns the built-in 'anonymous' user.- Specified by:
getAnonymousUserin interfaceUserRepository
-
getByUsernameLike
Description copied from interface:UserRepositoryReturns the list of users whose username contains the given substring.- Specified by:
getByUsernameLikein interfaceUserRepository
-
loadUserByUsername
public T loadUserByUsername(String username) throws org.springframework.security.core.userdetails.UsernameNotFoundException - Specified by:
loadUserByUsernamein interfaceorg.springframework.security.core.userdetails.UserDetailsService- Throws:
org.springframework.security.core.userdetails.UsernameNotFoundException
-
loadUsersByUsernameFromDatabase
-
changePassword
public void changePassword(String userName, @Nullable String oldPassword, @Nullable String newPassword) throws PasswordNotMatchException Description copied from interface:UserManagerChanges the password for the specific user.- Specified by:
changePasswordin interfaceUserManager- Parameters:
userName- - users loginoldPassword- - non encoded old users passwordnewPassword- - non encoded new users password- Throws:
PasswordNotMatchException- if the oldPassword is not null and the oldPassword does not equal to the current password or if the oldPassword is null and the newPassword does equal the current password
-
resetPasswords
public Map<org.springframework.security.core.userdetails.UserDetails,String> resetPasswords(Set<org.springframework.security.core.userdetails.UserDetails> users) Description copied from interface:UserManagerChanges the password for the specific user.- Specified by:
resetPasswordsin interfaceUserManager- Parameters:
users- - users which need reset passwords- Returns:
- map which contains new password for specific user
-
resetRememberMe
public void resetRememberMe(Collection<org.springframework.security.core.userdetails.UserDetails> users) Description copied from interface:UserManagerResets 'remember me' token for the specific user.- Specified by:
resetRememberMein interfaceUserManager- Parameters:
users- - users which need reset 'remember me' token
-
createAuthorities
protected Collection<? extends org.springframework.security.core.GrantedAuthority> createAuthorities(String username) -
createAuthority
@Nullable protected org.springframework.security.core.GrantedAuthority createAuthority(RoleAssignment roleAssignment) -
getGrantedAuthoritiesBuilder
protected AbstractDatabaseUserRepository<T>.GrantedAuthoritiesBuilder getGrantedAuthoritiesBuilder()Returns a builder that helps create authorities from roles. -
isUserDisabled
protected boolean isUserDisabled(EntityChangedEvent<? extends org.springframework.security.core.userdetails.UserDetails> event)
-