keycloak
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.storage.jpa.JpaUserFederatedStorageProvider クラス
org.keycloak.storage.jpa.JpaUserFederatedStorageProvider の継承関係図
Inheritance graph
org.keycloak.storage.jpa.JpaUserFederatedStorageProvider 連携図
Collaboration graph

公開メンバ関数

 JpaUserFederatedStorageProvider (KeycloakSession session, EntityManager em)
 
void close ()
 
void setAttribute (RealmModel realm, String userId, String name, List< String > values)
 
void setSingleAttribute (RealmModel realm, String userId, String name, String value)
 
void removeAttribute (RealmModel realm, String userId, String name)
 
MultivaluedHashMap< String, String > getAttributes (RealmModel realm, String userId)
 
List< String > getUsersByUserAttribute (RealmModel realm, String name, String value)
 
String getUserByFederatedIdentity (FederatedIdentityModel link, RealmModel realm)
 
void addFederatedIdentity (RealmModel realm, String userId, FederatedIdentityModel link)
 
boolean removeFederatedIdentity (RealmModel realm, String userId, String socialProvider)
 
void updateFederatedIdentity (RealmModel realm, String userId, FederatedIdentityModel model)
 
Set< FederatedIdentityModelgetFederatedIdentities (String userId, RealmModel realm)
 
FederatedIdentityModel getFederatedIdentity (String userId, String socialProvider, RealmModel realm)
 
void addConsent (RealmModel realm, String userId, UserConsentModel consent)
 
UserConsentModel getConsentByClient (RealmModel realm, String userId, String clientInternalId)
 
List< UserConsentModelgetConsents (RealmModel realm, String userId)
 
void updateConsent (RealmModel realm, String userId, UserConsentModel consent)
 
boolean revokeConsentForClient (RealmModel realm, String userId, String clientInternalId)
 
void setNotBeforeForUser (RealmModel realm, String userId, int notBefore)
 
int getNotBeforeOfUser (RealmModel realm, String userId)
 
Set< GroupModelgetGroups (RealmModel realm, String userId)
 
void joinGroup (RealmModel realm, String userId, GroupModel group)
 
void leaveGroup (RealmModel realm, String userId, GroupModel group)
 
List< String > getMembership (RealmModel realm, GroupModel group, int firstResult, int max)
 
Set< String > getRequiredActions (RealmModel realm, String userId)
 
void addRequiredAction (RealmModel realm, String userId, String action)
 
void removeRequiredAction (RealmModel realm, String userId, String action)
 
void grantRole (RealmModel realm, String userId, RoleModel role)
 
Set< RoleModelgetRoleMappings (RealmModel realm, String userId)
 
void deleteRoleMapping (RealmModel realm, String userId, RoleModel role)
 
void updateCredential (RealmModel realm, String userId, CredentialModel cred)
 
CredentialModel createCredential (RealmModel realm, String userId, CredentialModel cred)
 
boolean removeStoredCredential (RealmModel realm, String userId, String id)
 
CredentialModel getStoredCredentialById (RealmModel realm, String userId, String id)
 
List< CredentialModelgetStoredCredentials (RealmModel realm, String userId)
 
List< CredentialModelgetStoredCredentialsByType (RealmModel realm, String userId, String type)
 
CredentialModel getStoredCredentialByNameAndType (RealmModel realm, String userId, String name, String type)
 
List< String > getStoredUsers (RealmModel realm, int first, int max)
 
void updateCredential (RealmModel realm, UserModel user, CredentialModel cred)
 
CredentialModel createCredential (RealmModel realm, UserModel user, CredentialModel cred)
 
boolean removeStoredCredential (RealmModel realm, UserModel user, String id)
 
CredentialModel getStoredCredentialById (RealmModel realm, UserModel user, String id)
 
List< CredentialModelgetStoredCredentials (RealmModel realm, UserModel user)
 
List< CredentialModelgetStoredCredentialsByType (RealmModel realm, UserModel user, String type)
 
CredentialModel getStoredCredentialByNameAndType (RealmModel realm, UserModel user, String name, String type)
 
int getStoredUsersCount (RealmModel realm)
 
void preRemove (RealmModel realm)
 
void preRemove (RealmModel realm, RoleModel role)
 
void preRemove (RealmModel realm, GroupModel group)
 
void preRemove (RealmModel realm, ClientModel client)
 
void preRemove (ProtocolMapperModel protocolMapper)
 
void preRemove (ClientScopeModel clientScope)
 
void preRemove (RealmModel realm, UserModel user)
 
void preRemove (RealmModel realm, ComponentModel model)
 

限定公開メンバ関数

void createIndex (RealmModel realm, String userId)
 
CredentialModel toModel (FederatedUserCredentialEntity entity)
 

限定公開変数類

EntityManager em
 

非公開メンバ関数

void deleteAttribute (RealmModel realm, String userId, String name)
 
void persistAttributeValue (RealmModel realm, String userId, String name, String value)
 
BrokerLinkEntity getBrokerLinkEntity (RealmModel realm, String userId, String socialProvider)
 
FederatedUserConsentEntity getGrantedConsentEntity (String userId, String clientId)
 
UserConsentModel toConsentModel (RealmModel realm, FederatedUserConsentEntity entity)
 
void updateGrantedConsentEntity (FederatedUserConsentEntity consentEntity, UserConsentModel consentModel)
 
List< FederatedUserRequiredActionEntitygetRequiredActionEntities (RealmModel realm, String userId)
 

非公開変数類

final KeycloakSession session
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ JpaUserFederatedStorageProvider()

org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.JpaUserFederatedStorageProvider ( KeycloakSession  session,
EntityManager  em 
)
inline
74  {
75  this.session = session;
76  this.em = em;
77  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
final KeycloakSession session
Definition: JpaUserFederatedStorageProvider.java:71

関数詳解

◆ addConsent()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.addConsent ( RealmModel  realm,
String  userId,
UserConsentModel  consent 
)
inline

org.keycloak.storage.federated.UserConsentFederatedStorageを実装しています。

250  {
251  createIndex(realm, userId);
252  String clientId = consent.getClient().getId();
253 
254  FederatedUserConsentEntity consentEntity = getGrantedConsentEntity(userId, clientId);
255  if (consentEntity != null) {
256  throw new ModelDuplicateException("Consent already exists for client [" + clientId + "] and user [" + userId + "]");
257  }
258 
259  consentEntity = new FederatedUserConsentEntity();
260  consentEntity.setId(KeycloakModelUtils.generateId());
261  consentEntity.setUserId(userId);
262  StorageId clientStorageId = new StorageId(clientId);
263  if (clientStorageId.isLocal()) {
264  consentEntity.setClientId(clientId);
265  } else {
266  consentEntity.setClientStorageProvider(clientStorageId.getProviderId());
267  consentEntity.setExternalClientId(clientStorageId.getExternalId());
268  }
269  consentEntity.setRealmId(realm.getId());
270  consentEntity.setStorageProviderId(new StorageId(userId).getProviderId());
271  long currentTime = Time.currentTimeMillis();
272  consentEntity.setCreatedDate(currentTime);
273  consentEntity.setLastUpdatedDate(currentTime);
274  em.persist(consentEntity);
275  em.flush();
276 
277  updateGrantedConsentEntity(consentEntity, consent);
278 
279  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void updateGrantedConsentEntity(FederatedUserConsentEntity consentEntity, UserConsentModel consentModel)
Definition: JpaUserFederatedStorageProvider.java:378
FederatedUserConsentEntity getGrantedConsentEntity(String userId, String clientId)
Definition: JpaUserFederatedStorageProvider.java:325
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ addFederatedIdentity()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.addFederatedIdentity ( RealmModel  realm,
String  userId,
FederatedIdentityModel  link 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

185  {
186  createIndex(realm, userId);
187  BrokerLinkEntity entity = new BrokerLinkEntity();
188  entity.setRealmId(realm.getId());
189  entity.setUserId(userId);
190  entity.setBrokerUserId(link.getUserId());
191  entity.setIdentityProvider(link.getIdentityProvider());
192  entity.setToken(link.getToken());
193  entity.setBrokerUserName(link.getUserName());
194  entity.setStorageProviderId(new StorageId(userId).getProviderId());
195  em.persist(entity);
196 
197  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ addRequiredAction()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.addRequiredAction ( RealmModel  realm,
String  userId,
String  action 
)
inline

org.keycloak.storage.federated.UserRequiredActionsFederatedStorageを実装しています。

497  {
498  Key key = new FederatedUserRequiredActionEntity.Key(userId, action);
499  if (em.find(FederatedUserRequiredActionEntity.class, key) == null) {
500  createIndex(realm, userId);
501  FederatedUserRequiredActionEntity entity = new FederatedUserRequiredActionEntity();
502  entity.setUserId(userId);
503  entity.setRealmId(realm.getId());
504  entity.setStorageProviderId(new StorageId(userId).getProviderId());
505  entity.setAction(action);
506  em.persist(entity);
507  }
508  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ close()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.close ( )
inline

org.keycloak.provider.Providerを実装しています。

80  {
81 
82  }

◆ createCredential() [1/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.createCredential ( RealmModel  realm,
String  userId,
CredentialModel  cred 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

613  {
614  createIndex(realm, userId);
615  FederatedUserCredentialEntity entity = new FederatedUserCredentialEntity();
616  String id = cred.getId() == null ? KeycloakModelUtils.generateId() : cred.getId();
617  entity.setId(id);
618  entity.setAlgorithm(cred.getAlgorithm());
619  entity.setCounter(cred.getCounter());
620  entity.setCreatedDate(cred.getCreatedDate());
621  entity.setDevice(cred.getDevice());
622  entity.setDigits(cred.getDigits());
623  entity.setHashIterations(cred.getHashIterations());
624  entity.setPeriod(cred.getPeriod());
625  entity.setSalt(cred.getSalt());
626  entity.setType(cred.getType());
627  entity.setValue(cred.getValue());
628  entity.setUserId(userId);
629  entity.setRealmId(realm.getId());
630  entity.setStorageProviderId(new StorageId(userId).getProviderId());
631  em.persist(entity);
632  MultivaluedHashMap<String, String> config = cred.getConfig();
633  if (config != null && !config.isEmpty()) {
634 
635  for (String key : config.keySet()) {
636  List<String> values = config.getList(key);
637  for (String val : values) {
638  FederatedUserCredentialAttributeEntity attr = new FederatedUserCredentialAttributeEntity();
639  attr.setId(KeycloakModelUtils.generateId());
640  attr.setValue(val);
641  attr.setName(key);
642  attr.setCredential(entity);
643  em.persist(attr);
644  entity.getCredentialAttributes().add(attr);
645  }
646  }
647 
648  }
649  return toModel(entity);
650  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88
CredentialModel toModel(FederatedUserCredentialEntity entity)
Definition: JpaUserFederatedStorageProvider.java:668

◆ createCredential() [2/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.createCredential ( RealmModel  realm,
UserModel  user,
CredentialModel  cred 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

740  {
741  return createCredential(realm, user.getId(), cred);
742  }
CredentialModel createCredential(RealmModel realm, String userId, CredentialModel cred)
Definition: JpaUserFederatedStorageProvider.java:613

◆ createIndex()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.createIndex ( RealmModel  realm,
String  userId 
)
inlineprotected

We create an entry so that its easy to iterate over all things in the database. Specifically useful for export

88  {
89  if (em.find(FederatedUser.class, userId) == null) {
90  FederatedUser fedUser = new FederatedUser();
91  fedUser.setId(userId);
92  fedUser.setRealmId(realm.getId());
93  fedUser.setStorageProviderId(new StorageId(userId).getProviderId());
94  em.persist(fedUser);
95  }
96  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ deleteAttribute()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.deleteAttribute ( RealmModel  realm,
String  userId,
String  name 
)
inlineprivate
109  {
110  em.createNamedQuery("deleteUserFederatedAttributesByUserAndName")
111  .setParameter("userId", userId)
112  .setParameter("realmId", realm.getId())
113  .setParameter("name", name)
114  .executeUpdate();
115  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ deleteRoleMapping()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.deleteRoleMapping ( RealmModel  realm,
String  userId,
RoleModel  role 
)
inline

org.keycloak.storage.federated.UserRoleMappingsFederatedStorageを実装しています。

547  {
548  TypedQuery<FederatedUserRoleMappingEntity> query = em.createNamedQuery("feduserRoleMappings", FederatedUserRoleMappingEntity.class);
549  query.setParameter("userId", userId);
550  List<FederatedUserRoleMappingEntity> results = query.getResultList();
551  for (FederatedUserRoleMappingEntity entity : results) {
552  if (entity.getRoleId().equals(role.getId())) em.remove(entity);
553 
554  }
555  em.flush();
556  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getAttributes()

MultivaluedHashMap<String, String> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getAttributes ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserAttributeFederatedStorageを実装しています。

144  {
145  TypedQuery<FederatedUserAttributeEntity> query = em.createNamedQuery("getFederatedAttributesByUser", FederatedUserAttributeEntity.class);
146  List<FederatedUserAttributeEntity> list = query
147  .setParameter("userId", userId)
148  .setParameter("realmId", realm.getId())
149  .getResultList();
150  MultivaluedHashMap<String, String> result = new MultivaluedHashMap<>();
151  for (FederatedUserAttributeEntity entity : list) {
152  result.add(entity.getName(), entity.getValue());
153 
154  }
155  return result;
156  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getBrokerLinkEntity()

BrokerLinkEntity org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getBrokerLinkEntity ( RealmModel  realm,
String  userId,
String  socialProvider 
)
inlineprivate
207  {
208  TypedQuery<BrokerLinkEntity> query = em.createNamedQuery("findBrokerLinkByUserAndProvider", BrokerLinkEntity.class)
209  .setParameter("userId", userId)
210  .setParameter("realmId", realm.getId())
211  .setParameter("identityProvider", socialProvider);
212  List<BrokerLinkEntity> results = query.getResultList();
213  return results.size() > 0 ? results.get(0) : null;
214  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getConsentByClient()

UserConsentModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getConsentByClient ( RealmModel  realm,
String  userId,
String  clientInternalId 
)
inline

org.keycloak.storage.federated.UserConsentFederatedStorageを実装しています。

282  {
283  FederatedUserConsentEntity entity = getGrantedConsentEntity(userId, clientInternalId);
284  return toConsentModel(realm, entity);
285  }
FederatedUserConsentEntity getGrantedConsentEntity(String userId, String clientId)
Definition: JpaUserFederatedStorageProvider.java:325
UserConsentModel toConsentModel(RealmModel realm, FederatedUserConsentEntity entity)
Definition: JpaUserFederatedStorageProvider.java:347

◆ getConsents()

List<UserConsentModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getConsents ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserConsentFederatedStorageを実装しています。

288  {
289  TypedQuery<FederatedUserConsentEntity> query = em.createNamedQuery("userFederatedConsentsByUser", FederatedUserConsentEntity.class);
290  query.setParameter("userId", userId);
291  List<FederatedUserConsentEntity> results = query.getResultList();
292 
293  List<UserConsentModel> consents = new ArrayList<UserConsentModel>();
294  for (FederatedUserConsentEntity entity : results) {
295  UserConsentModel model = toConsentModel(realm, entity);
296  consents.add(model);
297  }
298  return consents;
299  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
UserConsentModel toConsentModel(RealmModel realm, FederatedUserConsentEntity entity)
Definition: JpaUserFederatedStorageProvider.java:347

◆ getFederatedIdentities()

Set<FederatedIdentityModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getFederatedIdentities ( String  userId,
RealmModel  realm 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

230  {
231  TypedQuery<BrokerLinkEntity> query = em.createNamedQuery("findBrokerLinkByUser", BrokerLinkEntity.class)
232  .setParameter("userId", userId);
233  List<BrokerLinkEntity> results = query.getResultList();
234  Set<FederatedIdentityModel> set = new HashSet<>();
235  for (BrokerLinkEntity entity : results) {
236  FederatedIdentityModel model = new FederatedIdentityModel(entity.getIdentityProvider(), entity.getBrokerUserId(), entity.getBrokerUserName(), entity.getToken());
237  set.add(model);
238  }
239  return set;
240  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getFederatedIdentity()

FederatedIdentityModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getFederatedIdentity ( String  userId,
String  socialProvider,
RealmModel  realm 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

243  {
244  BrokerLinkEntity entity = getBrokerLinkEntity(realm, userId, socialProvider);
245  if (entity == null) return null;
246  return new FederatedIdentityModel(entity.getIdentityProvider(), entity.getBrokerUserId(), entity.getBrokerUserName(), entity.getToken());
247  }
BrokerLinkEntity getBrokerLinkEntity(RealmModel realm, String userId, String socialProvider)
Definition: JpaUserFederatedStorageProvider.java:207

◆ getGrantedConsentEntity()

FederatedUserConsentEntity org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getGrantedConsentEntity ( String  userId,
String  clientId 
)
inlineprivate
325  {
326  StorageId clientStorageId = new StorageId(clientId);
327  String queryName = clientStorageId.isLocal() ? "userFederatedConsentByUserAndClient" : "userFederatedConsentByUserAndExternalClient";
328  TypedQuery<FederatedUserConsentEntity> query = em.createNamedQuery(queryName, FederatedUserConsentEntity.class);
329  query.setParameter("userId", userId);
330  if (clientStorageId.isLocal()) {
331  query.setParameter("clientId", clientId);
332  } else {
333  query.setParameter("clientStorageProvider", clientStorageId.getProviderId());
334  query.setParameter("externalClientId", clientStorageId.getExternalId());
335  }
336  List<FederatedUserConsentEntity> results = query.getResultList();
337  if (results.size() > 1) {
338  throw new ModelException("More results found for user [" + userId + "] and client [" + clientId + "]");
339  } else if (results.size() == 1) {
340  return results.get(0);
341  } else {
342  return null;
343  }
344  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getGroups()

Set<GroupModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getGroups ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserGroupMembershipFederatedStorageを実装しています。

424  {
425  Set<GroupModel> set = new HashSet<>();
426  TypedQuery<FederatedUserGroupMembershipEntity> query = em.createNamedQuery("feduserGroupMembership", FederatedUserGroupMembershipEntity.class);
427  query.setParameter("userId", userId);
428  List<FederatedUserGroupMembershipEntity> results = query.getResultList();
429  if (results.size() == 0) return set;
430  for (FederatedUserGroupMembershipEntity entity : results) {
431  GroupModel group = realm.getGroupById(entity.getGroupId());
432  set.add(group);
433  }
434  return set;
435  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getMembership()

List<String> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getMembership ( RealmModel  realm,
GroupModel  group,
int  firstResult,
int  max 
)
inline

org.keycloak.storage.federated.UserGroupMembershipFederatedStorageを実装しています。

468  {
469  TypedQuery<String> query = em.createNamedQuery("fedgroupMembership", String.class)
470  .setParameter("realmId", realm.getId())
471  .setParameter("groupId", group.getId());
472  query.setFirstResult(firstResult);
473  query.setMaxResults(max);
474  return query.getResultList();
475  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getNotBeforeOfUser()

int org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getNotBeforeOfUser ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserNotBeforeFederatedStorageを実装しています。

416  {
417  MultivaluedHashMap<String, String> attrs = getAttributes(realm, userId);
418  String notBeforeStr = attrs.getFirst("fedNotBefore");
419 
420  return notBeforeStr==null ? 0 : Integer.parseInt(notBeforeStr);
421  }
MultivaluedHashMap< String, String > getAttributes(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:144

◆ getRequiredActionEntities()

List<FederatedUserRequiredActionEntity> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getRequiredActionEntities ( RealmModel  realm,
String  userId 
)
inlineprivate
489  {
490  TypedQuery<FederatedUserRequiredActionEntity> query = em.createNamedQuery("getFederatedUserRequiredActionsByUser", FederatedUserRequiredActionEntity.class)
491  .setParameter("userId", userId)
492  .setParameter("realmId", realm.getId());
493  return query.getResultList();
494  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getRequiredActions()

Set<String> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getRequiredActions ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserRequiredActionsFederatedStorageを実装しています。

478  {
479  Set<String> set = new HashSet<>();
480  List<FederatedUserRequiredActionEntity> values = getRequiredActionEntities(realm, userId);
481  for (FederatedUserRequiredActionEntity entity : values) {
482  set.add(entity.getAction());
483  }
484 
485  return set;
486 
487  }
List< FederatedUserRequiredActionEntity > getRequiredActionEntities(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:489

◆ getRoleMappings()

Set<RoleModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getRoleMappings ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserRoleMappingsFederatedStorageを実装しています。

533  {
534  Set<RoleModel> set = new HashSet<>();
535  TypedQuery<FederatedUserRoleMappingEntity> query = em.createNamedQuery("feduserRoleMappings", FederatedUserRoleMappingEntity.class);
536  query.setParameter("userId", userId);
537  List<FederatedUserRoleMappingEntity> results = query.getResultList();
538  if (results.size() == 0) return set;
539  for (FederatedUserRoleMappingEntity entity : results) {
540  RoleModel role = realm.getRoleById(entity.getRoleId());
541  set.add(role);
542  }
543  return set;
544  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getStoredCredentialById() [1/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialById ( RealmModel  realm,
String  userId,
String  id 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

661  {
662  FederatedUserCredentialEntity entity = em.find(FederatedUserCredentialEntity.class, id);
663  if (entity == null) return null;
664  CredentialModel model = toModel(entity);
665  return model;
666  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
CredentialModel toModel(FederatedUserCredentialEntity entity)
Definition: JpaUserFederatedStorageProvider.java:668

◆ getStoredCredentialById() [2/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialById ( RealmModel  realm,
UserModel  user,
String  id 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

750  {
751  return getStoredCredentialById(realm, user.getId(), id);
752  }
CredentialModel getStoredCredentialById(RealmModel realm, String userId, String id)
Definition: JpaUserFederatedStorageProvider.java:661

◆ getStoredCredentialByNameAndType() [1/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialByNameAndType ( RealmModel  realm,
String  userId,
String  name,
String  type 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

715  {
716  TypedQuery<FederatedUserCredentialEntity> query = em.createNamedQuery("federatedUserCredentialByNameAndType", FederatedUserCredentialEntity.class)
717  .setParameter("type", type)
718  .setParameter("device", name)
719  .setParameter("userId", userId);
720  List<FederatedUserCredentialEntity> results = query.getResultList();
721  if (results.isEmpty()) return null;
722  return toModel(results.get(0));
723  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
CredentialModel toModel(FederatedUserCredentialEntity entity)
Definition: JpaUserFederatedStorageProvider.java:668

◆ getStoredCredentialByNameAndType() [2/2]

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialByNameAndType ( RealmModel  realm,
UserModel  user,
String  name,
String  type 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

765  {
766  return getStoredCredentialByNameAndType(realm, user.getId(), name, type);
767  }
CredentialModel getStoredCredentialByNameAndType(RealmModel realm, String userId, String name, String type)
Definition: JpaUserFederatedStorageProvider.java:715

◆ getStoredCredentials() [1/2]

List<CredentialModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentials ( RealmModel  realm,
String  userId 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

690  {
691  TypedQuery<FederatedUserCredentialEntity> query = em.createNamedQuery("federatedUserCredentialByUser", FederatedUserCredentialEntity.class)
692  .setParameter("userId", userId);
693  List<FederatedUserCredentialEntity> results = query.getResultList();
694  List<CredentialModel> rtn = new LinkedList<>();
695  for (FederatedUserCredentialEntity entity : results) {
696  rtn.add(toModel(entity));
697  }
698  return rtn;
699  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
CredentialModel toModel(FederatedUserCredentialEntity entity)
Definition: JpaUserFederatedStorageProvider.java:668

◆ getStoredCredentials() [2/2]

List<CredentialModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentials ( RealmModel  realm,
UserModel  user 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

755  {
756  return getStoredCredentials(realm, user.getId());
757  }
List< CredentialModel > getStoredCredentials(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:690

◆ getStoredCredentialsByType() [1/2]

List<CredentialModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialsByType ( RealmModel  realm,
String  userId,
String  type 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

702  {
703  TypedQuery<FederatedUserCredentialEntity> query = em.createNamedQuery("federatedUserCredentialByUserAndType", FederatedUserCredentialEntity.class)
704  .setParameter("type", type)
705  .setParameter("userId", userId);
706  List<FederatedUserCredentialEntity> results = query.getResultList();
707  List<CredentialModel> rtn = new LinkedList<>();
708  for (FederatedUserCredentialEntity entity : results) {
709  rtn.add(toModel(entity));
710  }
711  return rtn;
712  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
CredentialModel toModel(FederatedUserCredentialEntity entity)
Definition: JpaUserFederatedStorageProvider.java:668

◆ getStoredCredentialsByType() [2/2]

List<CredentialModel> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredCredentialsByType ( RealmModel  realm,
UserModel  user,
String  type 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

760  {
761  return getStoredCredentialsByType(realm, user.getId(), type);
762  }
List< CredentialModel > getStoredCredentialsByType(RealmModel realm, String userId, String type)
Definition: JpaUserFederatedStorageProvider.java:702

◆ getStoredUsers()

List<String> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredUsers ( RealmModel  realm,
int  first,
int  max 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

726  {
727  TypedQuery<String> query = em.createNamedQuery("getFederatedUserIds", String.class)
728  .setParameter("realmId", realm.getId())
729  .setFirstResult(first);
730  if (max > 0) query.setMaxResults(max);
731  return query.getResultList();
732  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getStoredUsersCount()

int org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getStoredUsersCount ( RealmModel  realm)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

770  {
771  Object count = em.createNamedQuery("getFederatedUserCount")
772  .setParameter("realmId", realm.getId())
773  .getSingleResult();
774  return ((Number)count).intValue();
775  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getUserByFederatedIdentity()

String org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getUserByFederatedIdentity ( FederatedIdentityModel  link,
RealmModel  realm 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

168  {
169  TypedQuery<String> query = em.createNamedQuery("findUserByBrokerLinkAndRealm", String.class)
170  .setParameter("realmId", realm.getId())
171  .setParameter("identityProvider", link.getIdentityProvider())
172  .setParameter("brokerUserId", link.getUserId());
173  List<String> results = query.getResultList();
174  if (results.isEmpty()) {
175  return null;
176  } else if (results.size() > 1) {
177  throw new IllegalStateException("More results found for identityProvider=" + link.getIdentityProvider() +
178  ", userId=" + link.getUserId() + ", results=" + results);
179  } else {
180  return results.get(0);
181  }
182  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ getUsersByUserAttribute()

List<String> org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.getUsersByUserAttribute ( RealmModel  realm,
String  name,
String  value 
)
inline

org.keycloak.storage.federated.UserAttributeFederatedStorageを実装しています。

159  {
160  TypedQuery<String> query = em.createNamedQuery("getFederatedAttributesByNameAndValue", String.class)
161  .setParameter("realmId", realm.getId())
162  .setParameter("name", name)
163  .setParameter("value", value);
164  return query.getResultList();
165  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ grantRole()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.grantRole ( RealmModel  realm,
String  userId,
RoleModel  role 
)
inline

org.keycloak.storage.federated.UserRoleMappingsFederatedStorageを実装しています。

521  {
522  createIndex(realm, userId);
523  FederatedUserRoleMappingEntity entity = new FederatedUserRoleMappingEntity();
524  entity.setUserId(userId);
525  entity.setStorageProviderId(new StorageId(userId).getProviderId());
526  entity.setRealmId(realm.getId());
527  entity.setRoleId(role.getId());
528  em.persist(entity);
529 
530  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ joinGroup()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.joinGroup ( RealmModel  realm,
String  userId,
GroupModel  group 
)
inline

org.keycloak.storage.federated.UserGroupMembershipFederatedStorageを実装しています。

438  {
439  createIndex(realm, userId);
440  FederatedUserGroupMembershipEntity entity = new FederatedUserGroupMembershipEntity();
441  entity.setUserId(userId);
442  entity.setStorageProviderId(new StorageId(userId).getProviderId());
443  entity.setGroupId(group.getId());
444  entity.setRealmId(realm.getId());
445  em.persist(entity);
446 
447  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ leaveGroup()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.leaveGroup ( RealmModel  realm,
String  userId,
GroupModel  group 
)
inline

org.keycloak.storage.federated.UserGroupMembershipFederatedStorageを実装しています。

451  {
452  if (userId == null || group == null) return;
453 
454  TypedQuery<FederatedUserGroupMembershipEntity> query1 = em.createNamedQuery("feduserMemberOf", FederatedUserGroupMembershipEntity.class);
455  query1.setParameter("userId", userId);
456  query1.setParameter("groupId", group.getId());
457  TypedQuery<FederatedUserGroupMembershipEntity> query = query1;
458  List<FederatedUserGroupMembershipEntity> results = query.getResultList();
459  if (results.size() == 0) return;
460  for (FederatedUserGroupMembershipEntity entity : results) {
461  em.remove(entity);
462  }
463  em.flush();
464 
465  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ persistAttributeValue()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.persistAttributeValue ( RealmModel  realm,
String  userId,
String  name,
String  value 
)
inlineprivate
117  {
118  FederatedUserAttributeEntity attr = new FederatedUserAttributeEntity();
119  attr.setId(KeycloakModelUtils.generateId());
120  attr.setName(name);
121  attr.setValue(value);
122  attr.setUserId(userId);
123  attr.setRealmId(realm.getId());
124  attr.setStorageProviderId(new StorageId(userId).getProviderId());
125  em.persist(attr);
126  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [1/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

778  {
779  int num = em.createNamedQuery("deleteFederatedUserConsentClientScopesByRealm")
780  .setParameter("realmId", realm.getId()).executeUpdate();
781  num = em.createNamedQuery("deleteFederatedUserConsentsByRealm")
782  .setParameter("realmId", realm.getId()).executeUpdate();
783  num = em.createNamedQuery("deleteFederatedUserRoleMappingsByRealm")
784  .setParameter("realmId", realm.getId()).executeUpdate();
785  num = em.createNamedQuery("deleteFederatedUserRequiredActionsByRealm")
786  .setParameter("realmId", realm.getId()).executeUpdate();
787  num = em.createNamedQuery("deleteBrokerLinkByRealm")
788  .setParameter("realmId", realm.getId()).executeUpdate();
789  num = em.createNamedQuery("deleteFederatedCredentialAttributeByRealm")
790  .setParameter("realmId", realm.getId()).executeUpdate();
791  num = em.createNamedQuery("deleteFederatedUserCredentialsByRealm")
792  .setParameter("realmId", realm.getId()).executeUpdate();
793  num = em.createNamedQuery("deleteUserFederatedAttributesByRealm")
794  .setParameter("realmId", realm.getId()).executeUpdate();
795  num = em.createNamedQuery("deleteFederatedUserGroupMembershipByRealm")
796  .setParameter("realmId", realm.getId()).executeUpdate();
797  num = em.createNamedQuery("deleteFederatedUsersByRealm")
798  .setParameter("realmId", realm.getId()).executeUpdate();
799  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [2/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm,
RoleModel  role 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

802  {
803  em.createNamedQuery("deleteFederatedUserRoleMappingsByRole").setParameter("roleId", role.getId()).executeUpdate();
804  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [3/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm,
GroupModel  group 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

807  {
808  em.createNamedQuery("deleteFederatedUserGroupMembershipsByGroup").setParameter("groupId", group.getId()).executeUpdate();
809  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [4/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm,
ClientModel  client 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

812  {
813  StorageId clientStorageId = new StorageId(client.getId());
814  if (clientStorageId.isLocal()) {
815  em.createNamedQuery("deleteFederatedUserConsentClientScopesByClient").setParameter("clientId", client.getId()).executeUpdate();
816  em.createNamedQuery("deleteFederatedUserConsentsByClient").setParameter("clientId", client.getId()).executeUpdate();
817  } else {
818  em.createNamedQuery("deleteFederatedUserConsentClientScopesByExternalClient")
819  .setParameter("clientStorageProvider", clientStorageId.getProviderId())
820  .setParameter("externalClientId",clientStorageId.getExternalId())
821  .executeUpdate();
822  em.createNamedQuery("deleteFederatedUserConsentsByExternalClient")
823  .setParameter("clientStorageProvider", clientStorageId.getProviderId())
824  .setParameter("externalClientId",clientStorageId.getExternalId())
825  .executeUpdate();
826 
827  }
828  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [5/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( ProtocolMapperModel  protocolMapper)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

831  {
832  // No op
833  }

◆ preRemove() [6/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( ClientScopeModel  clientScope)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

836  {
837  em.createNamedQuery("deleteFederatedUserConsentClientScopesByClientScope")
838  .setParameter("scopeId", clientScope.getId())
839  .executeUpdate();
840  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [7/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm,
UserModel  user 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

843  {
844  em.createNamedQuery("deleteBrokerLinkByUser")
845  .setParameter("userId", user.getId())
846  .setParameter("realmId", realm.getId())
847  .executeUpdate();
848  em.createNamedQuery("deleteUserFederatedAttributesByUser")
849  .setParameter("userId", user.getId())
850  .setParameter("realmId", realm.getId())
851  .executeUpdate();
852  em.createNamedQuery("deleteFederatedUserConsentClientScopesByUser")
853  .setParameter("userId", user.getId())
854  .setParameter("realmId", realm.getId())
855  .executeUpdate();
856  em.createNamedQuery("deleteFederatedUserConsentsByUser")
857  .setParameter("userId", user.getId())
858  .setParameter("realmId", realm.getId())
859  .executeUpdate();
860  em.createNamedQuery("deleteFederatedCredentialAttributeByUser")
861  .setParameter("userId", user.getId())
862  .setParameter("realmId", realm.getId())
863  .executeUpdate();
864  em.createNamedQuery("deleteFederatedUserCredentialByUser")
865  .setParameter("userId", user.getId())
866  .setParameter("realmId", realm.getId())
867  .executeUpdate();
868  em.createNamedQuery("deleteFederatedUserGroupMembershipsByUser")
869  .setParameter("userId", user.getId())
870  .setParameter("realmId", realm.getId())
871  .executeUpdate();
872  em.createNamedQuery("deleteFederatedUserRequiredActionsByUser")
873  .setParameter("userId", user.getId())
874  .setParameter("realmId", realm.getId())
875  .executeUpdate();
876  em.createNamedQuery("deleteFederatedUserRoleMappingsByUser")
877  .setParameter("userId", user.getId())
878  .setParameter("realmId", realm.getId())
879  .executeUpdate();
880  em.createNamedQuery("deleteFederatedUserByUser")
881  .setParameter("userId", user.getId())
882  .setParameter("realmId", realm.getId())
883  .executeUpdate();
884 
885  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ preRemove() [8/8]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.preRemove ( RealmModel  realm,
ComponentModel  model 
)
inline

org.keycloak.storage.federated.UserFederatedStorageProviderを実装しています。

888  {
889  if (model.getProviderType().equals(UserStorageProvider.class.getName())) {
890 
891  em.createNamedQuery("deleteBrokerLinkByStorageProvider")
892  .setParameter("storageProviderId", model.getId())
893  .executeUpdate();
894  em.createNamedQuery("deleteFederatedAttributesByStorageProvider")
895  .setParameter("storageProviderId", model.getId())
896  .executeUpdate();
897  em.createNamedQuery("deleteFederatedUserConsentClientScopesByStorageProvider")
898  .setParameter("storageProviderId", model.getId())
899  .executeUpdate();
900  em.createNamedQuery("deleteFederatedUserConsentsByStorageProvider")
901  .setParameter("storageProviderId", model.getId())
902  .executeUpdate();
903  em.createNamedQuery("deleteFederatedCredentialAttributeByStorageProvider")
904  .setParameter("storageProviderId", model.getId())
905  .executeUpdate();
906  em.createNamedQuery("deleteFederatedUserCredentialsByStorageProvider")
907  .setParameter("storageProviderId", model.getId())
908  .executeUpdate();
909  em.createNamedQuery("deleteFederatedUserGroupMembershipByStorageProvider")
910  .setParameter("storageProviderId", model.getId())
911  .executeUpdate();
912  em.createNamedQuery("deleteFederatedUserRequiredActionsByStorageProvider")
913  .setParameter("storageProviderId", model.getId())
914  .executeUpdate();
915  em.createNamedQuery("deleteFederatedUserRoleMappingsByStorageProvider")
916  .setParameter("storageProviderId", model.getId())
917  .executeUpdate();
918  em.createNamedQuery("deleteFederatedUsersByStorageProvider")
919  .setParameter("storageProviderId", model.getId())
920  .executeUpdate();
921  } else if (model.getProviderType().equals(ClientStorageProvider.class.getName())) {
922  em.createNamedQuery("deleteFederatedUserConsentClientScopesByClientStorageProvider")
923  .setParameter("clientStorageProvider", model.getId())
924  .executeUpdate();
925  em.createNamedQuery("deleteFederatedUserConsentsByClientStorageProvider")
926  .setParameter("clientStorageProvider", model.getId())
927  .executeUpdate();
928 
929  }
930 
931  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ removeAttribute()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.removeAttribute ( RealmModel  realm,
String  userId,
String  name 
)
inline

org.keycloak.storage.federated.UserAttributeFederatedStorageを実装しています。

137  {
138  // createIndex(realm, user); don't need to create an index for removal
139  deleteAttribute(realm, userId, name);
140  em.flush();
141  }
void deleteAttribute(RealmModel realm, String userId, String name)
Definition: JpaUserFederatedStorageProvider.java:109
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ removeFederatedIdentity()

boolean org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.removeFederatedIdentity ( RealmModel  realm,
String  userId,
String  socialProvider 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

200  {
201  BrokerLinkEntity entity = getBrokerLinkEntity(realm, userId, socialProvider);
202  if (entity == null) return false;
203  em.remove(entity);
204  return true;
205  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
BrokerLinkEntity getBrokerLinkEntity(RealmModel realm, String userId, String socialProvider)
Definition: JpaUserFederatedStorageProvider.java:207

◆ removeRequiredAction()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.removeRequiredAction ( RealmModel  realm,
String  userId,
String  action 
)
inline

org.keycloak.storage.federated.UserRequiredActionsFederatedStorageを実装しています。

511  {
512  List<FederatedUserRequiredActionEntity> values = getRequiredActionEntities(realm, userId);
513  for (FederatedUserRequiredActionEntity entity : values) {
514  if (action.equals(entity.getAction())) em.remove(entity);
515  }
516  em.flush();
517 
518  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
List< FederatedUserRequiredActionEntity > getRequiredActionEntities(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:489

◆ removeStoredCredential() [1/2]

boolean org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.removeStoredCredential ( RealmModel  realm,
String  userId,
String  id 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

653  {
654  FederatedUserCredentialEntity entity = em.find(FederatedUserCredentialEntity.class, id);
655  if (entity == null) return false;
656  em.remove(entity);
657  return true;
658  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

◆ removeStoredCredential() [2/2]

boolean org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.removeStoredCredential ( RealmModel  realm,
UserModel  user,
String  id 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

745  {
746  return removeStoredCredential(realm, user.getId(), id);
747  }
boolean removeStoredCredential(RealmModel realm, String userId, String id)
Definition: JpaUserFederatedStorageProvider.java:653

◆ revokeConsentForClient()

boolean org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.revokeConsentForClient ( RealmModel  realm,
String  userId,
String  clientInternalId 
)
inline

org.keycloak.storage.federated.UserConsentFederatedStorageを実装しています。

316  {
317  FederatedUserConsentEntity consentEntity = getGrantedConsentEntity(userId, clientInternalId);
318  if (consentEntity == null) return false;
319 
320  em.remove(consentEntity);
321  em.flush();
322  return true;
323  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
FederatedUserConsentEntity getGrantedConsentEntity(String userId, String clientId)
Definition: JpaUserFederatedStorageProvider.java:325

◆ setAttribute()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.setAttribute ( RealmModel  realm,
String  userId,
String  name,
List< String >  values 
)
inline

org.keycloak.storage.federated.UserAttributeFederatedStorageを実装しています。

100  {
101  createIndex(realm, userId);
102  deleteAttribute(realm, userId, name);
103  em.flush();
104  for (String value : values) {
105  persistAttributeValue(realm, userId, name, value);
106  }
107  }
void deleteAttribute(RealmModel realm, String userId, String name)
Definition: JpaUserFederatedStorageProvider.java:109
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88
void persistAttributeValue(RealmModel realm, String userId, String name, String value)
Definition: JpaUserFederatedStorageProvider.java:117

◆ setNotBeforeForUser()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.setNotBeforeForUser ( RealmModel  realm,
String  userId,
int  notBefore 
)
inline

org.keycloak.storage.federated.UserNotBeforeFederatedStorageを実装しています。

409  {
410  // Track it as attribute for now
411  String notBeforeStr = String.valueOf(notBefore);
412  setSingleAttribute(realm, userId, "fedNotBefore", notBeforeStr);
413  }
void setSingleAttribute(RealmModel realm, String userId, String name, String value)
Definition: JpaUserFederatedStorageProvider.java:129

◆ setSingleAttribute()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.setSingleAttribute ( RealmModel  realm,
String  userId,
String  name,
String  value 
)
inline

org.keycloak.storage.federated.UserAttributeFederatedStorageを実装しています。

129  {
130  createIndex(realm, userId);
131  deleteAttribute(realm, userId, name);
132  em.flush();
133  persistAttributeValue(realm, userId, name, value);
134  }
void deleteAttribute(RealmModel realm, String userId, String name)
Definition: JpaUserFederatedStorageProvider.java:109
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88
void persistAttributeValue(RealmModel realm, String userId, String name, String value)
Definition: JpaUserFederatedStorageProvider.java:117

◆ toConsentModel()

UserConsentModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.toConsentModel ( RealmModel  realm,
FederatedUserConsentEntity  entity 
)
inlineprivate
347  {
348  if (entity == null) {
349  return null;
350  }
351 
352  StorageId clientStorageId = null;
353  if ( entity.getClientId() == null) {
354  clientStorageId = new StorageId(entity.getClientStorageProvider(), entity.getExternalClientId());
355  } else {
356  clientStorageId = new StorageId(entity.getClientId());
357  }
358 
359  ClientModel client = realm.getClientById(clientStorageId.getId());
360  UserConsentModel model = new UserConsentModel(client);
361  model.setCreatedDate(entity.getCreatedDate());
362  model.setLastUpdatedDate(entity.getLastUpdatedDate());
363 
364  Collection<FederatedUserConsentClientScopeEntity> grantedClientScopeEntities = entity.getGrantedClientScopes();
365  if (grantedClientScopeEntities != null) {
366  for (FederatedUserConsentClientScopeEntity grantedClientScope : grantedClientScopeEntities) {
367  ClientScopeModel grantedClientScopeModel = realm.getClientScopeById(grantedClientScope.getScopeId());
368  if (grantedClientScopeModel != null) {
369  model.addGrantedClientScope(grantedClientScopeModel);
370  }
371  }
372  }
373 
374  return model;
375  }

◆ toModel()

CredentialModel org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.toModel ( FederatedUserCredentialEntity  entity)
inlineprotected
668  {
669  CredentialModel model = new CredentialModel();
670  model.setId(entity.getId());
671  model.setType(entity.getType());
672  model.setValue(entity.getValue());
673  model.setAlgorithm(entity.getAlgorithm());
674  model.setSalt(entity.getSalt());
675  model.setPeriod(entity.getPeriod());
676  model.setCounter(entity.getCounter());
677  model.setCreatedDate(entity.getCreatedDate());
678  model.setDevice(entity.getDevice());
679  model.setDigits(entity.getDigits());
680  model.setHashIterations(entity.getHashIterations());
681  MultivaluedHashMap<String, String> config = new MultivaluedHashMap<>();
682  model.setConfig(config);
683  for (FederatedUserCredentialAttributeEntity attr : entity.getCredentialAttributes()) {
684  config.add(attr.getName(), attr.getValue());
685  }
686  return model;
687  }

◆ updateConsent()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.updateConsent ( RealmModel  realm,
String  userId,
UserConsentModel  consent 
)
inline

org.keycloak.storage.federated.UserConsentFederatedStorageを実装しています。

302  {
303  createIndex(realm, userId);
304  String clientId = consent.getClient().getId();
305 
306  FederatedUserConsentEntity consentEntity = getGrantedConsentEntity(userId, clientId);
307  if (consentEntity == null) {
308  throw new ModelException("Consent not found for client [" + clientId + "] and user [" + userId + "]");
309  }
310 
311  updateGrantedConsentEntity(consentEntity, consent);
312 
313  }
void updateGrantedConsentEntity(FederatedUserConsentEntity consentEntity, UserConsentModel consentModel)
Definition: JpaUserFederatedStorageProvider.java:378
FederatedUserConsentEntity getGrantedConsentEntity(String userId, String clientId)
Definition: JpaUserFederatedStorageProvider.java:325
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ updateCredential() [1/2]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.updateCredential ( RealmModel  realm,
String  userId,
CredentialModel  cred 
)
inline

org.keycloak.storage.federated.UserFederatedUserCredentialStoreを実装しています。

559  {
560  FederatedUserCredentialEntity entity = em.find(FederatedUserCredentialEntity.class, cred.getId());
561  if (entity == null) return;
562  createIndex(realm, userId);
563  entity.setAlgorithm(cred.getAlgorithm());
564  entity.setCounter(cred.getCounter());
565  entity.setCreatedDate(cred.getCreatedDate());
566  entity.setDevice(cred.getDevice());
567  entity.setDigits(cred.getDigits());
568  entity.setHashIterations(cred.getHashIterations());
569  entity.setPeriod(cred.getPeriod());
570  entity.setSalt(cred.getSalt());
571  entity.setType(cred.getType());
572  entity.setValue(cred.getValue());
573  if (entity.getCredentialAttributes().isEmpty() && (cred.getConfig() == null || cred.getConfig().isEmpty())) {
574 
575  } else {
576  MultivaluedHashMap<String, String> attrs = new MultivaluedHashMap<>();
577  MultivaluedHashMap<String, String> config = cred.getConfig();
578  if (config == null) config = new MultivaluedHashMap<>();
579 
580  Iterator<FederatedUserCredentialAttributeEntity> it = entity.getCredentialAttributes().iterator();
581  while (it.hasNext()) {
582  FederatedUserCredentialAttributeEntity attr = it.next();
583  List<String> values = config.getList(attr.getName());
584  if (values == null || !values.contains(attr.getValue())) {
585  em.remove(attr);
586  it.remove();
587  } else {
588  attrs.add(attr.getName(), attr.getValue());
589  }
590 
591  }
592  for (String key : config.keySet()) {
593  List<String> values = config.getList(key);
594  List<String> attrValues = attrs.getList(key);
595  for (String val : values) {
596  if (attrValues == null || !attrValues.contains(val)) {
597  FederatedUserCredentialAttributeEntity attr = new FederatedUserCredentialAttributeEntity();
598  attr.setId(KeycloakModelUtils.generateId());
599  attr.setValue(val);
600  attr.setName(key);
601  attr.setCredential(entity);
602  em.persist(attr);
603  entity.getCredentialAttributes().add(attr);
604  }
605  }
606  }
607 
608  }
609 
610  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ updateCredential() [2/2]

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.updateCredential ( RealmModel  realm,
UserModel  user,
CredentialModel  cred 
)
inline

org.keycloak.credential.UserCredentialStoreを実装しています。

735  {
736  updateCredential(realm, user.getId(), cred);
737  }
void updateCredential(RealmModel realm, String userId, CredentialModel cred)
Definition: JpaUserFederatedStorageProvider.java:559

◆ updateFederatedIdentity()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.updateFederatedIdentity ( RealmModel  realm,
String  userId,
FederatedIdentityModel  model 
)
inline

org.keycloak.storage.federated.UserBrokerLinkFederatedStorageを実装しています。

217  {
218  createIndex(realm, userId);
219  BrokerLinkEntity entity = getBrokerLinkEntity(realm, userId, model.getIdentityProvider());
220  if (entity == null) return;
221  entity.setBrokerUserName(model.getUserName());
222  entity.setBrokerUserId(model.getUserId());
223  entity.setToken(model.getToken());
224  em.persist(entity);
225  em.flush();
226 
227  }
void setBrokerUserName(String brokerUserName)
Definition: BrokerLinkEntity.java:100
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72
BrokerLinkEntity getBrokerLinkEntity(RealmModel realm, String userId, String socialProvider)
Definition: JpaUserFederatedStorageProvider.java:207
void createIndex(RealmModel realm, String userId)
Definition: JpaUserFederatedStorageProvider.java:88

◆ updateGrantedConsentEntity()

void org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.updateGrantedConsentEntity ( FederatedUserConsentEntity  consentEntity,
UserConsentModel  consentModel 
)
inlineprivate
378  {
379  Collection<FederatedUserConsentClientScopeEntity> grantedClientScopeEntities = consentEntity.getGrantedClientScopes();
380  Collection<FederatedUserConsentClientScopeEntity> scopesToRemove = new HashSet<>(grantedClientScopeEntities);
381 
382  for (ClientScopeModel clientScope : consentModel.getGrantedClientScopes()) {
383  FederatedUserConsentClientScopeEntity grantedClientScopeEntity = new FederatedUserConsentClientScopeEntity();
384  grantedClientScopeEntity.setUserConsent(consentEntity);
385  grantedClientScopeEntity.setScopeId(clientScope.getId());
386 
387  // Check if it's already there
388  if (!grantedClientScopeEntities.contains(grantedClientScopeEntity)) {
389  em.persist(grantedClientScopeEntity);
390  em.flush();
391  grantedClientScopeEntities.add(grantedClientScopeEntity);
392  } else {
393  scopesToRemove.remove(grantedClientScopeEntity);
394  }
395  }
396  // Those mappers were no longer on consentModel and will be removed
397  for (FederatedUserConsentClientScopeEntity toRemove : scopesToRemove) {
398  grantedClientScopeEntities.remove(toRemove);
399  em.remove(toRemove);
400  }
401 
402  consentEntity.setLastUpdatedDate(Time.currentTimeMillis());
403 
404  em.flush();
405  }
EntityManager em
Definition: JpaUserFederatedStorageProvider.java:72

メンバ詳解

◆ em

EntityManager org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.em
protected

◆ session

final KeycloakSession org.keycloak.storage.jpa.JpaUserFederatedStorageProvider.session
private

このクラス詳解は次のファイルから抽出されました: