Package org.keycloak.models.jpa
Class JpaUserProvider
- java.lang.Object
-
- org.keycloak.models.jpa.JpaUserProvider
-
- All Implemented Interfaces:
UserCredentialStore
,UserCredentialStore.Streams
,UserProvider
,UserProvider.Streams
,Provider
,UserBulkUpdateProvider
,UserLookupProvider
,UserLookupProvider.Streams
,UserQueryProvider
,UserQueryProvider.Streams
,UserRegistrationProvider
public class JpaUserProvider extends Object implements UserProvider.Streams, UserCredentialStore.Streams
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.keycloak.credential.UserCredentialStore
UserCredentialStore.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.storage.user.UserLookupProvider
UserLookupProvider.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.models.UserProvider
UserProvider.Streams
-
Nested classes/interfaces inherited from interface org.keycloak.storage.user.UserQueryProvider
UserQueryProvider.Streams
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.persistence.EntityManager
em
-
Constructor Summary
Constructors Constructor Description JpaUserProvider(KeycloakSession session, javax.persistence.EntityManager em)
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.keycloak.credential.UserCredentialStore.Streams
getStoredCredentials, getStoredCredentialsByType
-
Methods inherited from interface org.keycloak.storage.user.UserLookupProvider.Streams
getUserByEmail, getUserById, getUserByUsername
-
Methods inherited from interface org.keycloak.models.UserProvider.Streams
getConsents, getFederatedIdentities, getFederatedIdentity, getUserByFederatedIdentity, getUsers, getUsers, getUsersStream
-
Methods inherited from interface org.keycloak.storage.user.UserQueryProvider
getRoleMembers, getRoleMembers, getUsersCount
-
Methods inherited from interface org.keycloak.storage.user.UserQueryProvider.Streams
getGroupMembers, getGroupMembers, getUsers, getUsers, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersStream, searchForUser, searchForUser, searchForUser, searchForUser, searchForUserByUserAttribute, searchForUserStream, searchForUserStream
-
-
-
-
Constructor Detail
-
JpaUserProvider
public JpaUserProvider(KeycloakSession session, javax.persistence.EntityManager em)
-
-
Method Detail
-
addUser
public UserModel addUser(RealmModel realm, String id, String username, boolean addDefaultRoles, boolean addDefaultRequiredActions)
- Specified by:
addUser
in interfaceUserProvider
-
addUser
public UserModel addUser(RealmModel realm, String username)
- Specified by:
addUser
in interfaceUserRegistrationProvider
-
removeUser
public boolean removeUser(RealmModel realm, UserModel user)
- Specified by:
removeUser
in interfaceUserRegistrationProvider
-
addFederatedIdentity
public void addFederatedIdentity(RealmModel realm, UserModel user, FederatedIdentityModel identity)
- Specified by:
addFederatedIdentity
in interfaceUserProvider
-
updateFederatedIdentity
public void updateFederatedIdentity(RealmModel realm, UserModel federatedUser, FederatedIdentityModel federatedIdentityModel)
- Specified by:
updateFederatedIdentity
in interfaceUserProvider
-
removeFederatedIdentity
public boolean removeFederatedIdentity(RealmModel realm, UserModel user, String identityProvider)
- Specified by:
removeFederatedIdentity
in interfaceUserProvider
-
preRemove
public void preRemove(RealmModel realm, IdentityProviderModel provider)
- Specified by:
preRemove
in interfaceUserProvider
-
addConsent
public void addConsent(RealmModel realm, String userId, UserConsentModel consent)
- Specified by:
addConsent
in interfaceUserProvider
-
getConsentByClient
public UserConsentModel getConsentByClient(RealmModel realm, String userId, String clientId)
- Specified by:
getConsentByClient
in interfaceUserProvider
-
getConsentsStream
public Stream<UserConsentModel> getConsentsStream(RealmModel realm, String userId)
- Specified by:
getConsentsStream
in interfaceUserProvider
- Specified by:
getConsentsStream
in interfaceUserProvider.Streams
-
updateConsent
public void updateConsent(RealmModel realm, String userId, UserConsentModel consent)
- Specified by:
updateConsent
in interfaceUserProvider
-
revokeConsentForClient
public boolean revokeConsentForClient(RealmModel realm, String userId, String clientId)
- Specified by:
revokeConsentForClient
in interfaceUserProvider
-
setNotBeforeForUser
public void setNotBeforeForUser(RealmModel realm, UserModel user, int notBefore)
- Specified by:
setNotBeforeForUser
in interfaceUserProvider
-
getNotBeforeOfUser
public int getNotBeforeOfUser(RealmModel realm, UserModel user)
- Specified by:
getNotBeforeOfUser
in interfaceUserProvider
-
grantToAllUsers
public void grantToAllUsers(RealmModel realm, RoleModel role)
- Specified by:
grantToAllUsers
in interfaceUserBulkUpdateProvider
-
preRemove
public void preRemove(RealmModel realm)
- Specified by:
preRemove
in interfaceUserProvider
-
removeImportedUsers
public void removeImportedUsers(RealmModel realm, String storageProviderId)
- Specified by:
removeImportedUsers
in interfaceUserProvider
-
unlinkUsers
public void unlinkUsers(RealmModel realm, String storageProviderId)
- Specified by:
unlinkUsers
in interfaceUserProvider
-
preRemove
public void preRemove(RealmModel realm, RoleModel role)
- Specified by:
preRemove
in interfaceUserProvider
-
preRemove
public void preRemove(RealmModel realm, ClientModel client)
- Specified by:
preRemove
in interfaceUserProvider
-
preRemove
public void preRemove(ProtocolMapperModel protocolMapper)
- Specified by:
preRemove
in interfaceUserProvider
-
preRemove
public void preRemove(ClientScopeModel clientScope)
- Specified by:
preRemove
in interfaceUserProvider
-
getGroupMembersStream
public Stream<UserModel> getGroupMembersStream(RealmModel realm, GroupModel group)
- Specified by:
getGroupMembersStream
in interfaceUserQueryProvider
- Specified by:
getGroupMembersStream
in interfaceUserQueryProvider.Streams
-
getRoleMembersStream
public Stream<UserModel> getRoleMembersStream(RealmModel realm, RoleModel role)
- Specified by:
getRoleMembersStream
in interfaceUserQueryProvider
-
preRemove
public void preRemove(RealmModel realm, GroupModel group)
- Specified by:
preRemove
in interfaceUserProvider
-
getUserById
public UserModel getUserById(RealmModel realm, String id)
- Specified by:
getUserById
in interfaceUserLookupProvider
- Specified by:
getUserById
in interfaceUserLookupProvider.Streams
-
getUserByUsername
public UserModel getUserByUsername(RealmModel realm, String username)
- Specified by:
getUserByUsername
in interfaceUserLookupProvider
- Specified by:
getUserByUsername
in interfaceUserLookupProvider.Streams
-
getUserByEmail
public UserModel getUserByEmail(RealmModel realm, String email)
- Specified by:
getUserByEmail
in interfaceUserLookupProvider
- Specified by:
getUserByEmail
in interfaceUserLookupProvider.Streams
-
close
public void close()
- Specified by:
close
in interfaceProvider
- Specified by:
close
in interfaceUserProvider
-
getUserByFederatedIdentity
public UserModel getUserByFederatedIdentity(RealmModel realm, FederatedIdentityModel identity)
- Specified by:
getUserByFederatedIdentity
in interfaceUserProvider
- Specified by:
getUserByFederatedIdentity
in interfaceUserProvider.Streams
-
getServiceAccount
public UserModel getServiceAccount(ClientModel client)
- Specified by:
getServiceAccount
in interfaceUserProvider
-
getUsersCount
public int getUsersCount(RealmModel realm, boolean includeServiceAccount)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
-
getUsersCount
public int getUsersCount(RealmModel realm, Set<String> groupIds)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
-
getUsersCount
public int getUsersCount(RealmModel realm, String search)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
- Specified by:
getUsersCount
in interfaceUserQueryProvider.Streams
-
getUsersCount
public int getUsersCount(RealmModel realm, String search, Set<String> groupIds)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
- Specified by:
getUsersCount
in interfaceUserQueryProvider.Streams
-
getUsersCount
public int getUsersCount(RealmModel realm, Map<String,String> params)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
- Specified by:
getUsersCount
in interfaceUserQueryProvider.Streams
-
getUsersCount
public int getUsersCount(RealmModel realm, Map<String,String> params, Set<String> groupIds)
- Specified by:
getUsersCount
in interfaceUserQueryProvider
- Specified by:
getUsersCount
in interfaceUserQueryProvider.Streams
-
getUsersStream
public Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults)
- Specified by:
getUsersStream
in interfaceUserQueryProvider
- Specified by:
getUsersStream
in interfaceUserQueryProvider.Streams
-
getUsersStream
public Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults, boolean includeServiceAccounts)
- Specified by:
getUsersStream
in interfaceUserProvider
- Specified by:
getUsersStream
in interfaceUserProvider.Streams
-
getGroupMembersStream
public Stream<UserModel> getGroupMembersStream(RealmModel realm, GroupModel group, Integer firstResult, Integer maxResults)
- Specified by:
getGroupMembersStream
in interfaceUserQueryProvider
- Specified by:
getGroupMembersStream
in interfaceUserQueryProvider.Streams
-
getRoleMembersStream
public Stream<UserModel> getRoleMembersStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults)
- Specified by:
getRoleMembersStream
in interfaceUserQueryProvider
-
searchForUserStream
public Stream<UserModel> searchForUserStream(RealmModel realm, String search, Integer firstResult, Integer maxResults)
- Specified by:
searchForUserStream
in interfaceUserQueryProvider
- Specified by:
searchForUserStream
in interfaceUserQueryProvider.Streams
-
searchForUserStream
public Stream<UserModel> searchForUserStream(RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults)
- Specified by:
searchForUserStream
in interfaceUserQueryProvider
- Specified by:
searchForUserStream
in interfaceUserQueryProvider.Streams
-
searchForUserByUserAttributeStream
public Stream<UserModel> searchForUserByUserAttributeStream(RealmModel realm, String attrName, String attrValue)
- Specified by:
searchForUserByUserAttributeStream
in interfaceUserQueryProvider
- Specified by:
searchForUserByUserAttributeStream
in interfaceUserQueryProvider.Streams
-
getFederatedIdentitiesStream
public Stream<FederatedIdentityModel> getFederatedIdentitiesStream(RealmModel realm, UserModel user)
- Specified by:
getFederatedIdentitiesStream
in interfaceUserProvider
- Specified by:
getFederatedIdentitiesStream
in interfaceUserProvider.Streams
-
getFederatedIdentity
public FederatedIdentityModel getFederatedIdentity(RealmModel realm, UserModel user, String identityProvider)
- Specified by:
getFederatedIdentity
in interfaceUserProvider
- Specified by:
getFederatedIdentity
in interfaceUserProvider.Streams
-
preRemove
public void preRemove(RealmModel realm, ComponentModel component)
- Specified by:
preRemove
in interfaceUserProvider
-
removeConsentByClientStorageProvider
protected void removeConsentByClientStorageProvider(RealmModel realm, String providerId)
-
updateCredential
public void updateCredential(RealmModel realm, UserModel user, CredentialModel cred)
- Specified by:
updateCredential
in interfaceUserCredentialStore
-
createCredential
public CredentialModel createCredential(RealmModel realm, UserModel user, CredentialModel cred)
- Specified by:
createCredential
in interfaceUserCredentialStore
-
removeStoredCredential
public boolean removeStoredCredential(RealmModel realm, UserModel user, String id)
- Specified by:
removeStoredCredential
in interfaceUserCredentialStore
-
getStoredCredentialById
public CredentialModel getStoredCredentialById(RealmModel realm, UserModel user, String id)
- Specified by:
getStoredCredentialById
in interfaceUserCredentialStore
-
toModel
protected CredentialModel toModel(CredentialEntity entity)
-
getStoredCredentialsStream
public Stream<CredentialModel> getStoredCredentialsStream(RealmModel realm, UserModel user)
- Specified by:
getStoredCredentialsStream
in interfaceUserCredentialStore
- Specified by:
getStoredCredentialsStream
in interfaceUserCredentialStore.Streams
-
getStoredCredentialsByTypeStream
public Stream<CredentialModel> getStoredCredentialsByTypeStream(RealmModel realm, UserModel user, String type)
- Specified by:
getStoredCredentialsByTypeStream
in interfaceUserCredentialStore
- Specified by:
getStoredCredentialsByTypeStream
in interfaceUserCredentialStore.Streams
-
getStoredCredentialByNameAndType
public CredentialModel getStoredCredentialByNameAndType(RealmModel realm, UserModel user, String name, String type)
- Specified by:
getStoredCredentialByNameAndType
in interfaceUserCredentialStore
-
moveCredentialTo
public boolean moveCredentialTo(RealmModel realm, UserModel user, String id, String newPreviousCredentialId)
- Specified by:
moveCredentialTo
in interfaceUserCredentialStore
-
ensureEmailConstraint
protected void ensureEmailConstraint(List<UserEntity> users, RealmModel realm)
-
-