Details
diff --git a/model/file/src/main/java/org/keycloak/models/file/adapter/UserAdapter.java b/model/file/src/main/java/org/keycloak/models/file/adapter/UserAdapter.java
index 5e66376..236f95c 100755
--- a/model/file/src/main/java/org/keycloak/models/file/adapter/UserAdapter.java
+++ b/model/file/src/main/java/org/keycloak/models/file/adapter/UserAdapter.java
@@ -259,6 +259,10 @@ public class UserAdapter implements UserModel, Comparable {
setValue(credentialEntity, cred);
user.getCredentials().add(credentialEntity);
} else {
+ List<CredentialEntity> credentialEntities = getCredentialEntities(user, UserCredentialModel.PASSWORD_HISTORY);
+ if (credentialEntities != null && credentialEntities.size() > 0) {
+ user.getCredentials().removeAll(credentialEntities);
+ }
setValue(credentialEntity, cred);
}
}
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/UserAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/UserAdapter.java
index 62ca898..2216d22 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/UserAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/UserAdapter.java
@@ -260,6 +260,10 @@ public class UserAdapter implements UserModel {
em.persist(credentialEntity);
user.getCredentials().add(credentialEntity);
} else {
+ List<CredentialEntity> credentialEntities = getCredentialEntities(user, UserCredentialModel.PASSWORD_HISTORY);
+ if (credentialEntities != null && credentialEntities.size() > 0) {
+ user.getCredentials().removeAll(credentialEntities);
+ }
setValue(credentialEntity, cred);
}
}
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/UserAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/UserAdapter.java
index afc99e9..1214323 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/UserAdapter.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/UserAdapter.java
@@ -227,6 +227,10 @@ public class UserAdapter extends AbstractMongoAdapter<MongoUserEntity> implement
setValue(credentialEntity, cred);
user.getCredentials().add(credentialEntity);
} else {
+ List<CredentialEntity> credentialEntities = getCredentialEntities(user, UserCredentialModel.PASSWORD_HISTORY);
+ if (credentialEntities != null && credentialEntities.size() > 0) {
+ user.getCredentials().removeAll(credentialEntities);
+ }
setValue(credentialEntity, cred);
}
}