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)) {
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));
129 if (toValidate.isEmpty())
return true;
132 for (CredentialInputValidator validator : credentialProviders) {
133 validate(realm, user, toValidate, validator);
136 return toValidate.isEmpty();
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
KeycloakSession session
Definition: UserCredentialStoreManager.java:45