51 PasswordPolicy policy =
session.getContext().getRealm().getPasswordPolicy();
52 int passwordHistoryPolicyValue = policy.getPolicyConfig(PasswordPolicy.PASSWORD_HISTORY_ID);
53 if (passwordHistoryPolicyValue != -1) {
54 List<CredentialModel> storedPasswords =
session.userCredentialManager().getStoredCredentialsByType(realm, user, CredentialModel.PASSWORD);
55 for (CredentialModel cred : storedPasswords) {
56 PasswordHashProvider hash =
session.getProvider(PasswordHashProvider.class, cred.getAlgorithm());
57 if (hash == null)
continue;
58 if (hash.verify(password, cred)) {
59 return new PolicyError(
ERROR_MESSAGE, passwordHistoryPolicyValue);
62 List<CredentialModel> passwordHistory =
session.userCredentialManager().getStoredCredentialsByType(realm, user, CredentialModel.PASSWORD_HISTORY);
63 for (CredentialModel cred : passwordHistory) {
64 PasswordHashProvider hash =
session.getProvider(PasswordHashProvider.class, cred.getAlgorithm());
65 if (hash.verify(password, cred)) {
66 return new PolicyError(
ERROR_MESSAGE, passwordHistoryPolicyValue);
static final String ERROR_MESSAGE
Definition: HistoryPasswordPolicyProvider.java:36
KeycloakSession session
Definition: HistoryPasswordPolicyProvider.java:38