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

公開メンバ関数

 JpaUserCredentialStore (KeycloakSession session, EntityManager em)
 
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)
 
void close ()
 

限定公開メンバ関数

CredentialModel toModel (CredentialEntity entity)
 

限定公開変数類

final EntityManager em
 

非公開変数類

final KeycloakSession session
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ JpaUserCredentialStore()

org.keycloak.models.jpa.JpaUserCredentialStore.JpaUserCredentialStore ( KeycloakSession  session,
EntityManager  em 
)
inline
45  {
46  this.session = session;
47  this.em = em;
48  }
final KeycloakSession session
Definition: JpaUserCredentialStore.java:42
final EntityManager em
Definition: JpaUserCredentialStore.java:43

関数詳解

◆ close()

void org.keycloak.models.jpa.JpaUserCredentialStore.close ( )
inline

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

217  {
218 
219  }

◆ createCredential()

CredentialModel org.keycloak.models.jpa.JpaUserCredentialStore.createCredential ( RealmModel  realm,
UserModel  user,
CredentialModel  cred 
)
inline

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

104  {
105  CredentialEntity entity = new CredentialEntity();
106  String id = cred.getId() == null ? KeycloakModelUtils.generateId() : cred.getId();
107  entity.setId(id);
108  entity.setAlgorithm(cred.getAlgorithm());
109  entity.setCounter(cred.getCounter());
110  entity.setCreatedDate(cred.getCreatedDate());
111  entity.setDevice(cred.getDevice());
112  entity.setDigits(cred.getDigits());
113  entity.setHashIterations(cred.getHashIterations());
114  entity.setPeriod(cred.getPeriod());
115  entity.setSalt(cred.getSalt());
116  entity.setType(cred.getType());
117  entity.setValue(cred.getValue());
118  UserEntity userRef = em.getReference(UserEntity.class, user.getId());
119  entity.setUser(userRef);
120  em.persist(entity);
121  MultivaluedHashMap<String, String> config = cred.getConfig();
122  if (config != null && !config.isEmpty()) {
123 
124  for (String key : config.keySet()) {
125  List<String> values = config.getList(key);
126  for (String val : values) {
127  CredentialAttributeEntity attr = new CredentialAttributeEntity();
128  attr.setId(KeycloakModelUtils.generateId());
129  attr.setValue(val);
130  attr.setName(key);
131  attr.setCredential(entity);
132  em.persist(attr);
133  entity.getCredentialAttributes().add(attr);
134  }
135  }
136 
137  }
138  return toModel(entity);
139  }
CredentialModel toModel(CredentialEntity entity)
Definition: JpaUserCredentialStore.java:157
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ getStoredCredentialById()

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

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

150  {
151  CredentialEntity entity = em.find(CredentialEntity.class, id);
152  if (entity == null) return null;
153  CredentialModel model = toModel(entity);
154  return model;
155  }
CredentialModel toModel(CredentialEntity entity)
Definition: JpaUserCredentialStore.java:157
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ getStoredCredentialByNameAndType()

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

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

205  {
206  UserEntity userEntity = em.getReference(UserEntity.class, user.getId());
207  TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByNameAndType", CredentialEntity.class)
208  .setParameter("type", type)
209  .setParameter("device", name)
210  .setParameter("user", userEntity);
211  List<CredentialEntity> results = query.getResultList();
212  if (results.isEmpty()) return null;
213  return toModel(results.get(0));
214  }
CredentialModel toModel(CredentialEntity entity)
Definition: JpaUserCredentialStore.java:157
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ getStoredCredentials()

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

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

178  {
179  UserEntity userEntity = em.getReference(UserEntity.class, user.getId());
180  TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByUser", CredentialEntity.class)
181  .setParameter("user", userEntity);
182  List<CredentialEntity> results = query.getResultList();
183  List<CredentialModel> rtn = new LinkedList<>();
184  for (CredentialEntity entity : results) {
185  rtn.add(toModel(entity));
186  }
187  return rtn;
188  }
CredentialModel toModel(CredentialEntity entity)
Definition: JpaUserCredentialStore.java:157
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ getStoredCredentialsByType()

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

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

191  {
192  UserEntity userEntity = em.getReference(UserEntity.class, user.getId());
193  TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByUserAndType", CredentialEntity.class)
194  .setParameter("type", type)
195  .setParameter("user", userEntity);
196  List<CredentialEntity> results = query.getResultList();
197  List<CredentialModel> rtn = new LinkedList<>();
198  for (CredentialEntity entity : results) {
199  rtn.add(toModel(entity));
200  }
201  return rtn;
202  }
CredentialModel toModel(CredentialEntity entity)
Definition: JpaUserCredentialStore.java:157
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ removeStoredCredential()

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

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

142  {
143  CredentialEntity entity = em.find(CredentialEntity.class, id);
144  if (entity == null) return false;
145  em.remove(entity);
146  return true;
147  }
final EntityManager em
Definition: JpaUserCredentialStore.java:43

◆ toModel()

CredentialModel org.keycloak.models.jpa.JpaUserCredentialStore.toModel ( CredentialEntity  entity)
inlineprotected
157  {
158  CredentialModel model = new CredentialModel();
159  model.setId(entity.getId());
160  model.setType(entity.getType());
161  model.setValue(entity.getValue());
162  model.setAlgorithm(entity.getAlgorithm());
163  model.setSalt(entity.getSalt());
164  model.setPeriod(entity.getPeriod());
165  model.setCounter(entity.getCounter());
166  model.setCreatedDate(entity.getCreatedDate());
167  model.setDevice(entity.getDevice());
168  model.setDigits(entity.getDigits());
169  MultivaluedHashMap<String, String> config = new MultivaluedHashMap<>();
170  model.setConfig(config);
171  for (CredentialAttributeEntity attr : entity.getCredentialAttributes()) {
172  config.add(attr.getName(), attr.getValue());
173  }
174  return model;
175  }

◆ updateCredential()

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

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

51  {
52  CredentialEntity entity = em.find(CredentialEntity.class, cred.getId());
53  if (entity == null) return;
54  entity.setAlgorithm(cred.getAlgorithm());
55  entity.setCounter(cred.getCounter());
56  entity.setCreatedDate(cred.getCreatedDate());
57  entity.setDevice(cred.getDevice());
58  entity.setDigits(cred.getDigits());
59  entity.setHashIterations(cred.getHashIterations());
60  entity.setPeriod(cred.getPeriod());
61  entity.setSalt(cred.getSalt());
62  entity.setType(cred.getType());
63  entity.setValue(cred.getValue());
64  if (entity.getCredentialAttributes().isEmpty() && (cred.getConfig() == null || cred.getConfig().isEmpty())) {
65 
66  } else {
67  MultivaluedHashMap<String, String> attrs = cred.getConfig();
68  MultivaluedHashMap<String, String> config = cred.getConfig();
69  if (config == null) config = new MultivaluedHashMap<>();
70 
71  Iterator<CredentialAttributeEntity> it = entity.getCredentialAttributes().iterator();
72  while (it.hasNext()) {
73  CredentialAttributeEntity attr = it.next();
74  List<String> values = config.getList(attr.getName());
75  if (values == null || !values.contains(attr.getValue())) {
76  em.remove(attr);
77  it.remove();
78  } else {
79  attrs.add(attr.getName(), attr.getValue());
80  }
81 
82  }
83  for (String key : config.keySet()) {
84  List<String> values = config.getList(key);
85  List<String> attrValues = attrs.getList(key);
86  for (String val : values) {
87  if (attrValues == null || !attrValues.contains(val)) {
88  CredentialAttributeEntity attr = new CredentialAttributeEntity();
89  attr.setId(KeycloakModelUtils.generateId());
90  attr.setValue(val);
91  attr.setName(key);
92  attr.setCredential(entity);
93  em.persist(attr);
94  entity.getCredentialAttributes().add(attr);
95  }
96  }
97  }
98 
99  }
100 
101  }
final EntityManager em
Definition: JpaUserCredentialStore.java:43

メンバ詳解

◆ em

final EntityManager org.keycloak.models.jpa.JpaUserCredentialStore.em
protected

◆ session

final KeycloakSession org.keycloak.models.jpa.JpaUserCredentialStore.session
private

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