public class JpaUserProvider extends Object implements UserProvider.Streams, UserCredentialStore.Streams
UserProvider.StreamsUserCredentialStore.Streams| Modifier and Type | Field and Description |
|---|---|
protected javax.persistence.EntityManager |
em |
| Constructor and Description |
|---|
JpaUserProvider(KeycloakSession session,
javax.persistence.EntityManager em) |
| Modifier and Type | Method and Description |
|---|---|
void |
addConsent(RealmModel realm,
String userId,
UserConsentModel consent)
Add user consent for the user.
|
void |
addFederatedIdentity(RealmModel realm,
UserModel user,
FederatedIdentityModel identity)
Adds a federated identity link for the user within the realm
|
UserModel |
addUser(RealmModel realm,
String username)
All storage providers that implement this interface will be looped through.
|
UserModel |
addUser(RealmModel realm,
String id,
String username,
boolean addDefaultRoles,
boolean addDefaultRequiredActions)
Adds a new user into the storage.
|
void |
close() |
CredentialModel |
createCredential(RealmModel realm,
UserModel user,
CredentialModel cred) |
protected void |
ensureEmailConstraint(List<UserEntity> users,
RealmModel realm) |
UserConsentModel |
getConsentByClient(RealmModel realm,
String userId,
String clientId)
Returns UserConsentModel given by a user with the userId for the client with clientInternalId
|
Stream<UserConsentModel> |
getConsentsStream(RealmModel realm,
String userId)
Obtains the consents associated with the user identified by the specified
userId. |
Stream<FederatedIdentityModel> |
getFederatedIdentitiesStream(RealmModel realm,
UserModel user)
Obtains the federated identities of the specified user.
|
FederatedIdentityModel |
getFederatedIdentity(RealmModel realm,
UserModel user,
String identityProvider)
Returns details of the association between the user and the socialProvider.
|
Stream<UserModel> |
getGroupMembersStream(RealmModel realm,
GroupModel group)
Obtains users that belong to a specific group.
|
Stream<UserModel> |
getGroupMembersStream(RealmModel realm,
GroupModel group,
Integer firstResult,
Integer maxResults)
Obtains users that belong to a specific group.
|
int |
getNotBeforeOfUser(RealmModel realm,
UserModel user)
Gets the notBefore value for the given user
|
Stream<UserModel> |
getRoleMembersStream(RealmModel realm,
RoleModel role)
Obtains users that have the specified role.
|
Stream<UserModel> |
getRoleMembersStream(RealmModel realm,
RoleModel role,
Integer firstResult,
Integer maxResults)
Searches for users that have the specified role.
|
UserModel |
getServiceAccount(ClientModel client)
Return a UserModel representing service account of the client
|
CredentialModel |
getStoredCredentialById(RealmModel realm,
UserModel user,
String id) |
CredentialModel |
getStoredCredentialByNameAndType(RealmModel realm,
UserModel user,
String name,
String type) |
Stream<CredentialModel> |
getStoredCredentialsByTypeStream(RealmModel realm,
UserModel user,
String type)
Obtains the stored credentials associated with the specified user that match the specified type.
|
Stream<CredentialModel> |
getStoredCredentialsStream(RealmModel realm,
UserModel user)
Obtains the stored credentials associated with the specified user.
|
UserModel |
getUserByEmail(RealmModel realm,
String email)
Returns a user with the given email belonging to the realm
|
UserModel |
getUserByFederatedIdentity(RealmModel realm,
FederatedIdentityModel identity)
Returns a userModel that corresponds to the given socialLink.
|
UserModel |
getUserById(RealmModel realm,
String id)
Returns a user with the given id belonging to the realm
|
UserModel |
getUserByUsername(RealmModel realm,
String username)
Returns a user with the given username belonging to the realm
|
int |
getUsersCount(RealmModel realm,
boolean includeServiceAccount)
Returns the number of users.
|
int |
getUsersCount(RealmModel realm,
Map<String,String> params)
Returns the number of users that match the given filter parameters.
|
int |
getUsersCount(RealmModel realm,
Map<String,String> params,
Set<String> groupIds)
Returns the number of users that match the given filter parameters and is in
at least one of the given groups.
|
int |
getUsersCount(RealmModel realm,
Set<String> groupIds)
Returns the number of users that are in at least one of the groups
given.
|
int |
getUsersCount(RealmModel realm,
String search)
Returns the number of users that would be returned by a call to
searchForUserStream |
int |
getUsersCount(RealmModel realm,
String search,
Set<String> groupIds)
Returns the number of users that would be returned by a call to
searchForUserStream
and are members of at least one of the groups given by the groupIds set. |
Stream<UserModel> |
getUsersStream(RealmModel realm,
Integer firstResult,
Integer maxResults)
Searches all users in the realm, starting from the
firstResult and containing at most maxResults. |
Stream<UserModel> |
getUsersStream(RealmModel realm,
Integer firstResult,
Integer maxResults,
boolean includeServiceAccounts)
Obtains the users associated with the specified realm.
|
void |
grantToAllUsers(RealmModel realm,
RoleModel role)
Grants the given role to all users from particular realm.
|
boolean |
moveCredentialTo(RealmModel realm,
UserModel user,
String id,
String newPreviousCredentialId) |
void |
preRemove(ClientScopeModel clientScope)
Called when a client scope is removed.
|
void |
preRemove(ProtocolMapperModel protocolMapper)
Called when a protocolMapper is removed
|
void |
preRemove(RealmModel realm)
Called when a realm is removed.
|
void |
preRemove(RealmModel realm,
ClientModel client)
Called when a client is removed.
|
void |
preRemove(RealmModel realm,
ComponentModel component)
Called when a component is removed.
|
void |
preRemove(RealmModel realm,
GroupModel group)
Called when a group is removed.
|
void |
preRemove(RealmModel realm,
IdentityProviderModel provider)
Called when an identity provider is removed.
|
void |
preRemove(RealmModel realm,
RoleModel role)
Called when a role is removed.
|
protected void |
removeConsentByClientStorageProvider(RealmModel realm,
String providerId) |
boolean |
removeFederatedIdentity(RealmModel realm,
UserModel user,
String identityProvider)
Removes federation link between the user and the identity provider given by its id
|
void |
removeImportedUsers(RealmModel realm,
String storageProviderId)
Removes any imported users from a specific User Storage Provider.
|
boolean |
removeStoredCredential(RealmModel realm,
UserModel user,
String id) |
boolean |
removeUser(RealmModel realm,
UserModel user)
Called if user originated from this provider.
|
boolean |
revokeConsentForClient(RealmModel realm,
String userId,
String clientId)
Remove a user consent given by the user id and client id
|
Stream<UserModel> |
searchForUserByUserAttributeStream(RealmModel realm,
String attrName,
String attrValue)
Searches for users that have a specific attribute with a specific value.
|
Stream<UserModel> |
searchForUserStream(RealmModel realm,
Map<String,String> attributes,
Integer firstResult,
Integer maxResults)
Searches for user by parameter.
|
Stream<UserModel> |
searchForUserStream(RealmModel realm,
String search,
Integer firstResult,
Integer maxResults)
Searches for users whose username, email, first name or last name contain any of the strings in
search separated by whitespace. |
void |
setNotBeforeForUser(RealmModel realm,
UserModel user,
int notBefore)
Sets the notBefore value for the given user
|
protected CredentialModel |
toModel(CredentialEntity entity) |
void |
unlinkUsers(RealmModel realm,
String storageProviderId)
Set federation link to
null to imported users of a specific User Storage Provider |
void |
updateConsent(RealmModel realm,
String userId,
UserConsentModel consent)
Update client scopes in the stored user consent
|
void |
updateCredential(RealmModel realm,
UserModel user,
CredentialModel cred) |
void |
updateFederatedIdentity(RealmModel realm,
UserModel federatedUser,
FederatedIdentityModel federatedIdentityModel)
Update details of association between the federatedUser and the idp given by the federatedIdentityModel
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetConsents, getFederatedIdentities, getFederatedIdentity, getUserByFederatedIdentity, getUsers, getUsers, getUsersStreamgetGroupMembers, getGroupMembers, getUsers, getUsers, getUsersCount, getUsersCount, getUsersCount, getUsersCount, getUsersStream, searchForUser, searchForUser, searchForUser, searchForUser, searchForUserByUserAttribute, searchForUserStream, searchForUserStreamcountUsersInGroups, getRoleMembers, getRoleMembers, getUsersCountgetUserByEmail, getUserById, getUserByUsernamegetStoredCredentials, getStoredCredentialsByTypepublic JpaUserProvider(KeycloakSession session, javax.persistence.EntityManager em)
public UserModel addUser(RealmModel realm, String id, String username, boolean addDefaultRoles, boolean addDefaultRequiredActions)
UserProvideraddUser in interface UserProviderrealm - the realm that user will be created inid - id of the new user. Should be generated to a random value if null.username - usernameaddDefaultRoles - if true, the user should join all realm default rolesaddDefaultRequiredActions - if true, all default required actions are added to the created userpublic UserModel addUser(RealmModel realm, String username)
UserRegistrationProvideraddUser in interface UserRegistrationProviderrealm - a reference to the realmusername - a username the created user will be assignedpublic boolean removeUser(RealmModel realm, UserModel user)
UserRegistrationProviderremoveUser in interface UserRegistrationProviderrealm - a reference to the realmuser - a reference to the user that is removedpublic void addFederatedIdentity(RealmModel realm, UserModel user, FederatedIdentityModel identity)
UserProvideraddFederatedIdentity in interface UserProviderrealm - a reference to the realmuser - the user modelidentity - the federated identity model containing all details of the association between the user and
the identity providerpublic void updateFederatedIdentity(RealmModel realm, UserModel federatedUser, FederatedIdentityModel federatedIdentityModel)
UserProviderupdateFederatedIdentity in interface UserProviderrealm - a reference to the realmfederatedUser - the user modelfederatedIdentityModel - the federated identity model containing all details of the association between
the user and the identity providerpublic boolean removeFederatedIdentity(RealmModel realm, UserModel user, String identityProvider)
UserProviderremoveFederatedIdentity in interface UserProviderrealm - a reference to the realmuser - the user modelidentityProvider - alias of the identity provider, see IdentityProviderModel.getAlias()true if the association was removed, false otherwisepublic void preRemove(RealmModel realm, IdentityProviderModel provider)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmprovider - provider modelpublic void addConsent(RealmModel realm, String userId, UserConsentModel consent)
UserProvideraddConsent in interface UserProviderrealm - a reference to the realmuserId - id of the userconsent - all details corresponding to the granted consentpublic UserConsentModel getConsentByClient(RealmModel realm, String userId, String clientId)
UserProvidergetConsentByClient in interface UserProviderrealm - a reference to the realmuserId - id of the userclientId - id of the clientnull if no consent or user existspublic Stream<UserConsentModel> getConsentsStream(RealmModel realm, String userId)
UserProvideruserId.getConsentsStream in interface UserProvidergetConsentsStream in interface UserProvider.Streamsrealm - a reference to the realm.userId - the user identifier.Stream of consents associated with the user.public void updateConsent(RealmModel realm, String userId, UserConsentModel consent)
UserProviderupdateConsent in interface UserProviderrealm - a reference to the realmuserId - id of the userconsent - new details of the user consentpublic boolean revokeConsentForClient(RealmModel realm, String userId, String clientId)
UserProviderrevokeConsentForClient in interface UserProviderrealm - a reference to the realmuserId - id of the userclientId - id of the clienttrue if the consent was removed, false otherwisepublic void setNotBeforeForUser(RealmModel realm, UserModel user, int notBefore)
UserProvidersetNotBeforeForUser in interface UserProviderrealm - a reference to the realmuser - the user modelnotBefore - new value for notBeforepublic int getNotBeforeOfUser(RealmModel realm, UserModel user)
UserProvidergetNotBeforeOfUser in interface UserProviderrealm - a reference to the realmuser - the user modelpublic void grantToAllUsers(RealmModel realm, RoleModel role)
UserBulkUpdateProvidergrantToAllUsers in interface UserBulkUpdateProviderrealm - Realmrole - Role to be grantedpublic void preRemove(RealmModel realm)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmpublic void removeImportedUsers(RealmModel realm, String storageProviderId)
UserProviderremoveImportedUsers in interface UserProviderrealm - a reference to the realmstorageProviderId - id of the user storage providerpublic void unlinkUsers(RealmModel realm, String storageProviderId)
UserProvidernull to imported users of a specific User Storage ProviderunlinkUsers in interface UserProviderrealm - a reference to the realmstorageProviderId - id of the storage providerpublic void preRemove(RealmModel realm, RoleModel role)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmrole - the role modelpublic void preRemove(RealmModel realm, ClientModel client)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmclient - the client modelpublic void preRemove(ProtocolMapperModel protocolMapper)
UserProviderpreRemove in interface UserProviderprotocolMapper - the protocolMapper modelpublic void preRemove(ClientScopeModel clientScope)
UserProviderpreRemove in interface UserProviderclientScope - the clientScope modelpublic Stream<UserModel> getGroupMembersStream(RealmModel realm, GroupModel group)
UserQueryProvidergetGroupMembersStream in interface UserQueryProvidergetGroupMembersStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.group - a reference to the group.Stream of users that belong to the group.public Stream<UserModel> getRoleMembersStream(RealmModel realm, RoleModel role)
UserQueryProvidergetRoleMembersStream in interface UserQueryProviderrealm - a reference to the realm.role - a reference to the role.Stream of users that have the specified role.public void preRemove(RealmModel realm, GroupModel group)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmgroup - the group modelpublic UserModel getUserById(RealmModel realm, String id)
UserLookupProvidergetUserById in interface UserLookupProvidergetUserById in interface UserLookupProvider.Streamsrealm - the realm modelid - id of the usernull if no such user existspublic UserModel getUserByUsername(RealmModel realm, String username)
UserLookupProvidergetUserByUsername in interface UserLookupProvidergetUserByUsername in interface UserLookupProvider.Streamsrealm - the realm modelusername - case insensitive username (case-sensitivity is controlled by storage)null if no such user existspublic UserModel getUserByEmail(RealmModel realm, String email)
UserLookupProvidergetUserByEmail in interface UserLookupProvidergetUserByEmail in interface UserLookupProvider.Streamsrealm - the realm modelemail - case insensitive email address (case-sensitivity is controlled by storage)null if no such user existspublic void close()
close in interface UserProviderclose in interface Providerpublic UserModel getUserByFederatedIdentity(RealmModel realm, FederatedIdentityModel identity)
UserProvidergetUserByFederatedIdentity in interface UserProvidergetUserByFederatedIdentity in interface UserProvider.Streamsrealm - a reference to the realmidentity - the socialLinknull if no such user existspublic UserModel getServiceAccount(ClientModel client)
UserProvidergetServiceAccount in interface UserProviderclient - the client modelpublic int getUsersCount(RealmModel realm, boolean includeServiceAccount)
UserQueryProvidergetUsersCount in interface UserQueryProviderrealm - the realmincludeServiceAccount - if true, the number of users will also include service accounts. Otherwise, only the number of users.public int getUsersCount(RealmModel realm, Set<String> groupIds)
UserQueryProvidergetUsersCount in interface UserQueryProviderrealm - the realmgroupIds - set of groups IDs, the returned user needs to belong to at least one of thempublic int getUsersCount(RealmModel realm, String search)
UserQueryProvidersearchForUserStreamgetUsersCount in interface UserQueryProvidergetUsersCount in interface UserQueryProvider.Streamsrealm - the realmsearch - case insensitive list of strings separated by whitespaces.public int getUsersCount(RealmModel realm, String search, Set<String> groupIds)
UserQueryProvidersearchForUserStream
and are members of at least one of the groups given by the groupIds set.getUsersCount in interface UserQueryProvidergetUsersCount in interface UserQueryProvider.Streamsrealm - the realmsearch - case insensitive list of strings separated by whitespaces.groupIds - set of groups IDs, the returned user needs to belong to at least one of thempublic int getUsersCount(RealmModel realm, Map<String,String> params)
UserQueryProvidergetUsersCount in interface UserQueryProvidergetUsersCount in interface UserQueryProvider.Streamsrealm - the realmparams - filter parameterspublic int getUsersCount(RealmModel realm, Map<String,String> params, Set<String> groupIds)
UserQueryProvidergetUsersCount in interface UserQueryProvidergetUsersCount in interface UserQueryProvider.Streamsrealm - the realmparams - filter parametersgroupIds - set if groups to check forpublic Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults)
UserQueryProviderfirstResult and containing at most maxResults.getUsersStream in interface UserQueryProvidergetUsersStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.firstResult - first result to return. Ignored if negative or null.maxResults - maximum number of results to return. Ignored if negative or null.Stream of users.public Stream<UserModel> getUsersStream(RealmModel realm, Integer firstResult, Integer maxResults, boolean includeServiceAccounts)
UserProvidergetUsersStream in interface UserProvidergetUsersStream in interface UserProvider.Streamsrealm - a reference to the realm being used for the search.firstResult - first result to return. Ignored if negative, zero, or null.maxResults - maximum number of results to return. Ignored if negative or null.includeServiceAccounts - true if service accounts should be included in the result; false otherwise.Stream of users associated withe the realm.public Stream<UserModel> getGroupMembersStream(RealmModel realm, GroupModel group, Integer firstResult, Integer maxResults)
UserQueryProvidergetGroupMembersStream in interface UserQueryProvidergetGroupMembersStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.group - a reference to the group.firstResult - first result to return. Ignored if negative, zero, or null.maxResults - maximum number of results to return. Ignored if negative or null.Stream of users that belong to the group.public Stream<UserModel> getRoleMembersStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults)
UserQueryProvidergetRoleMembersStream in interface UserQueryProviderrealm - a reference to the realm.role - a reference to the role.firstResult - first result to return. Ignored if negative or null.maxResults - maximum number of results to return. Ignored if negative or null.Stream of users that have the specified role.public Stream<UserModel> searchForUserStream(RealmModel realm, String search, Integer firstResult, Integer maxResults)
UserQueryProvidersearch separated by whitespace.
If possible, implementations should treat the parameter values as partial match patterns (i.e. in RDMBS terms use LIKE).
This method is used by the admin console search boxsearchForUserStream in interface UserQueryProvidersearchForUserStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.search - case insensitive list of string separated by whitespaces.firstResult - first result to return. Ignored if negative, zero, or null.maxResults - maximum number of results to return. Ignored if negative or null.Stream of users that match the search criteria.public Stream<UserModel> searchForUserStream(RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults)
UserQueryProviderUserModel.FIRST_NAME - first name (case insensitive string)UserModel.LAST_NAME - last name (case insensitive string)UserModel.EMAIL - email (case insensitive string)UserModel.USERNAME - username (case insensitive string)UserModel.EMAIL_VERIFIED - search only for users with verified/non-verified email (true/false)UserModel.ENABLED - search only for enabled/disabled users (true/false)UserModel.IDP_ALIAS - search only for users that have a federated identity
from idp with the given alias configured (case sensitive string)UserModel.IDP_USER_ID - search for users with federated identity with
the given userId (case sensitive string)searchForUserStream in interface UserQueryProvidersearchForUserStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.attributes - a map containing the search parameters.firstResult - first result to return. Ignored if negative, zero, or null.maxResults - maximum number of results to return. Ignored if negative or null.Stream of users that match the search criteria.public Stream<UserModel> searchForUserByUserAttributeStream(RealmModel realm, String attrName, String attrValue)
UserQueryProvidersearchForUserByUserAttributeStream in interface UserQueryProvidersearchForUserByUserAttributeStream in interface UserQueryProvider.Streamsrealm - a reference to the realm.attrName - the attribute name.attrValue - the attribute value.Stream of users that match the search criteria.public Stream<FederatedIdentityModel> getFederatedIdentitiesStream(RealmModel realm, UserModel user)
UserProvidergetFederatedIdentitiesStream in interface UserProvidergetFederatedIdentitiesStream in interface UserProvider.Streamsrealm - a reference to the realm.user - the reference to the user.Stream of federated identities associated with the user.public FederatedIdentityModel getFederatedIdentity(RealmModel realm, UserModel user, String identityProvider)
UserProvidergetFederatedIdentity in interface UserProvidergetFederatedIdentity in interface UserProvider.Streamsrealm - a reference to the realmuser - the user modelidentityProvider - the id of the identity providernull if no association existspublic void preRemove(RealmModel realm, ComponentModel component)
UserProviderpreRemove in interface UserProviderrealm - a reference to the realmcomponent - the component modelprotected void removeConsentByClientStorageProvider(RealmModel realm, String providerId)
public void updateCredential(RealmModel realm, UserModel user, CredentialModel cred)
updateCredential in interface UserCredentialStorepublic CredentialModel createCredential(RealmModel realm, UserModel user, CredentialModel cred)
createCredential in interface UserCredentialStorepublic boolean removeStoredCredential(RealmModel realm, UserModel user, String id)
removeStoredCredential in interface UserCredentialStorepublic CredentialModel getStoredCredentialById(RealmModel realm, UserModel user, String id)
getStoredCredentialById in interface UserCredentialStoreprotected CredentialModel toModel(CredentialEntity entity)
public Stream<CredentialModel> getStoredCredentialsStream(RealmModel realm, UserModel user)
UserCredentialStoregetStoredCredentialsStream in interface UserCredentialStoregetStoredCredentialsStream in interface UserCredentialStore.Streamsrealm - a reference to the realm.user - the user whose credentials are being searched.Stream of credentials.public Stream<CredentialModel> getStoredCredentialsByTypeStream(RealmModel realm, UserModel user, String type)
UserCredentialStoregetStoredCredentialsByTypeStream in interface UserCredentialStoregetStoredCredentialsByTypeStream in interface UserCredentialStore.Streamsrealm - a reference to the realm.user - the user whose credentials are being searched.type - the type of credentials being searched.Stream of credentials.public CredentialModel getStoredCredentialByNameAndType(RealmModel realm, UserModel user, String name, String type)
getStoredCredentialByNameAndType in interface UserCredentialStorepublic boolean moveCredentialTo(RealmModel realm, UserModel user, String id, String newPreviousCredentialId)
moveCredentialTo in interface UserCredentialStoreprotected void ensureEmailConstraint(List<UserEntity> users, RealmModel realm)
Copyright © 2021 JBoss by Red Hat. All rights reserved.