keycloak-service
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.credential.UserCredentialStoreManager クラス
org.keycloak.credential.UserCredentialStoreManager の継承関係図
Inheritance graph
org.keycloak.credential.UserCredentialStoreManager 連携図
Collaboration graph

公開メンバ関数

 UserCredentialStoreManager (KeycloakSession session)
 
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< CredentialModel > getStoredCredentials (RealmModel realm, UserModel user)
 
List< CredentialModel > getStoredCredentialsByType (RealmModel realm, UserModel user, String type)
 
CredentialModel getStoredCredentialByNameAndType (RealmModel realm, UserModel user, String name, String type)
 
boolean isValid (RealmModel realm, UserModel user, CredentialInput... inputs)
 
boolean isValid (RealmModel realm, UserModel user, List< CredentialInput > inputs)
 
void updateCredential (RealmModel realm, UserModel user, CredentialInput input)
 
void disableCredentialType (RealmModel realm, UserModel user, String credentialType)
 
Set< String > getDisableableCredentialTypes (RealmModel realm, UserModel user)
 
boolean isConfiguredFor (RealmModel realm, UserModel user, String type)
 
boolean isConfiguredLocally (RealmModel realm, UserModel user, String type)
 
CredentialValidationOutput authenticate (KeycloakSession session, RealmModel realm, CredentialInput input)
 
void onCache (RealmModel realm, CachedUserModel user, UserModel delegate)
 
void close ()
 

静的公開メンバ関数

static< T > List< T > getCredentialProviders (KeycloakSession session, RealmModel realm, Class< T > type)
 

限定公開メンバ関数

UserCredentialStore getStoreForUser (UserModel user)
 

限定公開変数類

KeycloakSession session
 

非公開メンバ関数

void validate (RealmModel realm, UserModel user, List< CredentialInput > toValidate, CredentialInputValidator validator)
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ UserCredentialStoreManager()

org.keycloak.credential.UserCredentialStoreManager.UserCredentialStoreManager ( KeycloakSession  session)
inline
47  {
48  this.session = session;
49  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45

関数詳解

◆ authenticate()

CredentialValidationOutput org.keycloak.credential.UserCredentialStoreManager.authenticate ( KeycloakSession  session,
RealmModel  realm,
CredentialInput  input 
)
inline
292  {
293  List<CredentialAuthentication> list = UserStorageManager.getEnabledStorageProviders(session, realm, CredentialAuthentication.class);
294  for (CredentialAuthentication auth : list) {
295  if (auth.supportsCredentialAuthenticationFor(input.getType())) {
296  CredentialValidationOutput output = auth.authenticate(realm, input);
297  if (output != null) return output;
298  }
299  }
300 
301  list = getCredentialProviders(session, realm, CredentialAuthentication.class);
302  for (CredentialAuthentication auth : list) {
303  if (auth.supportsCredentialAuthenticationFor(input.getType())) {
304  CredentialValidationOutput output = auth.authenticate(realm, input);
305  if (output != null) return output;
306  }
307  }
308 
309  return null;
310  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149

◆ close()

void org.keycloak.credential.UserCredentialStoreManager.close ( )
inline
321  {
322 
323  }

◆ createCredential()

CredentialModel org.keycloak.credential.UserCredentialStoreManager.createCredential ( RealmModel  realm,
UserModel  user,
CredentialModel  cred 
)
inline
66  {
67  return getStoreForUser(user).createCredential(realm, user, cred);
68  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ disableCredentialType()

void org.keycloak.credential.UserCredentialStoreManager.disableCredentialType ( RealmModel  realm,
UserModel  user,
String  credentialType 
)
inline
191  {
192  if (!StorageId.isLocalStorage(user)) {
193  String providerId = StorageId.resolveProviderId(user);
194  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, providerId);
195  if (provider instanceof CredentialInputUpdater) {
196  if (!UserStorageManager.isStorageProviderEnabled(realm, providerId)) return;
197  CredentialInputUpdater updater = (CredentialInputUpdater) provider;
198  if (updater.supportsCredentialType(credentialType)) {
199  updater.disableCredentialType(realm, user, credentialType);
200  }
201 
202  }
203  } else {
204  if (user.getFederationLink() != null) {
205  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, user.getFederationLink());
206  if (provider != null && provider instanceof CredentialInputUpdater) {
207  if (!UserStorageManager.isStorageProviderEnabled(realm, user.getFederationLink())) return;
208  ((CredentialInputUpdater) provider).disableCredentialType(realm, user, credentialType);
209  }
210  }
211 
212  }
213 
214  List<CredentialInputUpdater> credentialProviders = getCredentialProviders(session, realm, CredentialInputUpdater.class);
215  for (CredentialInputUpdater updater : credentialProviders) {
216  if (!updater.supportsCredentialType(credentialType)) continue;
217  updater.disableCredentialType(realm, user, credentialType);
218 
219  }
220 
221 
222  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149

◆ getCredentialProviders()

static <T> List<T> org.keycloak.credential.UserCredentialStoreManager.getCredentialProviders ( KeycloakSession  session,
RealmModel  realm,
Class< T >  type 
)
inlinestatic
149  {
150  List<T> list = new LinkedList<T>();
151  for (ProviderFactory f : session.getKeycloakSessionFactory().getProviderFactories(CredentialProvider.class)) {
152  if (!Types.supports(type, f, CredentialProviderFactory.class)) continue;
153  list.add((T) session.getProvider(CredentialProvider.class, f.getId()));
154  }
155  return list;
156 
157  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45

◆ getDisableableCredentialTypes()

Set<String> org.keycloak.credential.UserCredentialStoreManager.getDisableableCredentialTypes ( RealmModel  realm,
UserModel  user 
)
inline
225  {
226  Set<String> types = new HashSet<>();
227  if (!StorageId.isLocalStorage(user)) {
228  String providerId = StorageId.resolveProviderId(user);
229  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, providerId);
230  if (provider instanceof CredentialInputUpdater) {
231  if (!UserStorageManager.isStorageProviderEnabled(realm, providerId)) return Collections.EMPTY_SET;
232  CredentialInputUpdater updater = (CredentialInputUpdater) provider;
233  types.addAll(updater.getDisableableCredentialTypes(realm, user));
234  }
235  } else {
236  if (user.getFederationLink() != null) {
237  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, user.getFederationLink());
238  if (provider != null && provider instanceof CredentialInputUpdater) {
239  if (!UserStorageManager.isStorageProviderEnabled(realm, user.getFederationLink())) return Collections.EMPTY_SET;
240  types.addAll(((CredentialInputUpdater) provider).getDisableableCredentialTypes(realm, user));
241  }
242  }
243 
244  }
245 
246  List<CredentialInputUpdater> credentialProviders = getCredentialProviders(session, realm, CredentialInputUpdater.class);
247  for (CredentialInputUpdater updater : credentialProviders) {
248  types.addAll(updater.getDisableableCredentialTypes(realm, user));
249  }
250  return types;
251  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149
Set< String > getDisableableCredentialTypes(RealmModel realm, UserModel user)
Definition: UserCredentialStoreManager.java:225

◆ getStoredCredentialById()

CredentialModel org.keycloak.credential.UserCredentialStoreManager.getStoredCredentialById ( RealmModel  realm,
UserModel  user,
String  id 
)
inline
76  {
77  return getStoreForUser(user).getStoredCredentialById(realm, user, id);
78  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ getStoredCredentialByNameAndType()

CredentialModel org.keycloak.credential.UserCredentialStoreManager.getStoredCredentialByNameAndType ( RealmModel  realm,
UserModel  user,
String  name,
String  type 
)
inline
91  {
92  return getStoreForUser(user).getStoredCredentialByNameAndType(realm, user, name, type);
93  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ getStoredCredentials()

List<CredentialModel> org.keycloak.credential.UserCredentialStoreManager.getStoredCredentials ( RealmModel  realm,
UserModel  user 
)
inline
81  {
82  return getStoreForUser(user).getStoredCredentials(realm, user);
83  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ getStoredCredentialsByType()

List<CredentialModel> org.keycloak.credential.UserCredentialStoreManager.getStoredCredentialsByType ( RealmModel  realm,
UserModel  user,
String  type 
)
inline
86  {
87  return getStoreForUser(user).getStoredCredentialsByType(realm, user, type);
88  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ getStoreForUser()

UserCredentialStore org.keycloak.credential.UserCredentialStoreManager.getStoreForUser ( UserModel  user)
inlineprotected
51  {
52  if (StorageId.isLocalStorage(user)) {
53  return (UserCredentialStore) session.userLocalStorage();
54  } else {
55  return (UserCredentialStore) session.userFederatedStorage();
56  }
57  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45

◆ isConfiguredFor()

boolean org.keycloak.credential.UserCredentialStoreManager.isConfiguredFor ( RealmModel  realm,
UserModel  user,
String  type 
)
inline
254  {
255  if (!StorageId.isLocalStorage(user)) {
256  String providerId = StorageId.resolveProviderId(user);
257  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, providerId);
258  if (provider instanceof CredentialInputValidator) {
259  if (!UserStorageManager.isStorageProviderEnabled(realm, providerId)) return false;
260  CredentialInputValidator validator = (CredentialInputValidator) provider;
261  if (validator.supportsCredentialType(type) && validator.isConfiguredFor(realm, user, type)) {
262  return true;
263  }
264  }
265  } else {
266  if (user.getFederationLink() != null) {
267  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, user.getFederationLink());
268  if (provider != null && provider instanceof CredentialInputValidator) {
269  if (!UserStorageManager.isStorageProviderEnabled(realm, user.getFederationLink())) return false;
270  if (((CredentialInputValidator) provider).isConfiguredFor(realm, user, type)) return true;
271  }
272  }
273 
274  }
275 
276  return isConfiguredLocally(realm, user, type);
277  }
boolean isConfiguredLocally(RealmModel realm, UserModel user, String type)
Definition: UserCredentialStoreManager.java:280
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
boolean isConfiguredFor(RealmModel realm, UserModel user, String type)
Definition: UserCredentialStoreManager.java:254

◆ isConfiguredLocally()

boolean org.keycloak.credential.UserCredentialStoreManager.isConfiguredLocally ( RealmModel  realm,
UserModel  user,
String  type 
)
inline
280  {
281  List<CredentialInputValidator> credentialProviders = getCredentialProviders(session, realm, CredentialInputValidator.class);
282  for (CredentialInputValidator validator : credentialProviders) {
283  if (validator.supportsCredentialType(type) && validator.isConfiguredFor(realm, user, type)) {
284  return true;
285  }
286 
287  }
288  return false;
289  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149

◆ isValid() [1/2]

boolean org.keycloak.credential.UserCredentialStoreManager.isValid ( RealmModel  realm,
UserModel  user,
CredentialInput...  inputs 
)
inline
96  {
97  return isValid(realm, user, Arrays.asList(inputs));
98  }
boolean isValid(RealmModel realm, UserModel user, CredentialInput... inputs)
Definition: UserCredentialStoreManager.java:96

◆ isValid() [2/2]

boolean org.keycloak.credential.UserCredentialStoreManager.isValid ( RealmModel  realm,
UserModel  user,
List< CredentialInput >  inputs 
)
inline
101  {
102 
103  List<CredentialInput> toValidate = new LinkedList<>();
104  toValidate.addAll(inputs);
105  if (!StorageId.isLocalStorage(user)) {
106  String providerId = StorageId.resolveProviderId(user);
107  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, providerId);
108  if (provider instanceof CredentialInputValidator) {
109  if (!UserStorageManager.isStorageProviderEnabled(realm, providerId)) return false;
110  Iterator<CredentialInput> it = toValidate.iterator();
111  while (it.hasNext()) {
112  CredentialInput input = it.next();
113  CredentialInputValidator validator = (CredentialInputValidator) provider;
114  if (validator.supportsCredentialType(input.getType()) && validator.isValid(realm, user, input)) {
115  it.remove();
116  }
117  }
118  }
119  } else {
120  if (user.getFederationLink() != null) {
121  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, user.getFederationLink());
122  if (provider != null && provider instanceof CredentialInputValidator) {
123  if (!UserStorageManager.isStorageProviderEnabled(realm, user.getFederationLink())) return false;
124  validate(realm, user, toValidate, ((CredentialInputValidator)provider));
125  }
126  }
127  }
128 
129  if (toValidate.isEmpty()) return true;
130 
131  List<CredentialInputValidator> credentialProviders = getCredentialProviders(session, realm, CredentialInputValidator.class);
132  for (CredentialInputValidator validator : credentialProviders) {
133  validate(realm, user, toValidate, validator);
134 
135  }
136  return toValidate.isEmpty();
137  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
void validate(RealmModel realm, UserModel user, List< CredentialInput > toValidate, CredentialInputValidator validator)
Definition: UserCredentialStoreManager.java:139
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149

◆ onCache()

void org.keycloak.credential.UserCredentialStoreManager.onCache ( RealmModel  realm,
CachedUserModel  user,
UserModel  delegate 
)
inline
313  {
314  List<OnUserCache> credentialProviders = getCredentialProviders(session, realm, OnUserCache.class);
315  for (OnUserCache validator : credentialProviders) {
316  validator.onCache(realm, user, delegate);
317  }
318  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149

◆ removeStoredCredential()

boolean org.keycloak.credential.UserCredentialStoreManager.removeStoredCredential ( RealmModel  realm,
UserModel  user,
String  id 
)
inline
71  {
72  return getStoreForUser(user).removeStoredCredential(realm, user, id);
73  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ updateCredential() [1/2]

void org.keycloak.credential.UserCredentialStoreManager.updateCredential ( RealmModel  realm,
UserModel  user,
CredentialModel  cred 
)
inline
60  {
61  getStoreForUser(user).updateCredential(realm, user, cred);
62 
63  }
UserCredentialStore getStoreForUser(UserModel user)
Definition: UserCredentialStoreManager.java:51

◆ updateCredential() [2/2]

void org.keycloak.credential.UserCredentialStoreManager.updateCredential ( RealmModel  realm,
UserModel  user,
CredentialInput  input 
)
inline
160  {
161  if (!StorageId.isLocalStorage(user)) {
162  String providerId = StorageId.resolveProviderId(user);
163  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, providerId);
164  if (provider instanceof CredentialInputUpdater) {
165  if (!UserStorageManager.isStorageProviderEnabled(realm, providerId)) return;
166  CredentialInputUpdater updater = (CredentialInputUpdater) provider;
167  if (updater.supportsCredentialType(input.getType())) {
168  if (updater.updateCredential(realm, user, input)) return;
169  }
170 
171  }
172  } else {
173  if (user.getFederationLink() != null) {
174  UserStorageProvider provider = UserStorageManager.getStorageProvider(session, realm, user.getFederationLink());
175  if (provider != null && provider instanceof CredentialInputUpdater) {
176  if (!UserStorageManager.isStorageProviderEnabled(realm, user.getFederationLink())) return;
177  if (((CredentialInputUpdater) provider).updateCredential(realm, user, input)) return;
178  }
179  }
180  }
181 
182  List<CredentialInputUpdater> credentialProviders = getCredentialProviders(session, realm, CredentialInputUpdater.class);
183  for (CredentialInputUpdater updater : credentialProviders) {
184  if (!updater.supportsCredentialType(input.getType())) continue;
185  if (updater.updateCredential(realm, user, input)) return;
186 
187  }
188  }
KeycloakSession session
Definition: UserCredentialStoreManager.java:45
static< T > List< T > getCredentialProviders(KeycloakSession session, RealmModel realm, Class< T > type)
Definition: UserCredentialStoreManager.java:149
void updateCredential(RealmModel realm, UserModel user, CredentialModel cred)
Definition: UserCredentialStoreManager.java:60

◆ validate()

void org.keycloak.credential.UserCredentialStoreManager.validate ( RealmModel  realm,
UserModel  user,
List< CredentialInput >  toValidate,
CredentialInputValidator  validator 
)
inlineprivate
139  {
140  Iterator<CredentialInput> it = toValidate.iterator();
141  while (it.hasNext()) {
142  CredentialInput input = it.next();
143  if (validator.supportsCredentialType(input.getType()) && validator.isValid(realm, user, input)) {
144  it.remove();
145  }
146  }
147  }

メンバ詳解

◆ session

KeycloakSession org.keycloak.credential.UserCredentialStoreManager.session
protected

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