@Override public void updateCredentialDirectly(UserCredentialValueModel credModel) { CredentialEntity credentialEntity = getCredentialEntity(user, credModel.getType()); if (credentialEntity == null) { credentialEntity = new CredentialEntity(); // credentialEntity.setId(KeycloakModelUtils.generateId()); credentialEntity.setType(credModel.getType()); // credentialEntity.setUser(user); credModel.setCreatedDate(credModel.getCreatedDate()); user.getCredentials().add(credentialEntity); } credentialEntity.setValue(credModel.getValue()); credentialEntity.setSalt(credModel.getSalt()); credentialEntity.setDevice(credModel.getDevice()); credentialEntity.setHashIterations(credModel.getHashIterations()); }
private void updatePasswordCredential(UserCredentialModel cred) { CredentialEntity credentialEntity = getCredentialEntity(user, cred.getType()); if (credentialEntity == null) { credentialEntity = setCredentials(user, cred); setValue(credentialEntity, cred); user.getCredentials().add(credentialEntity); } else { int expiredPasswordsPolicyValue = -1; PasswordPolicy policy = realm.getPasswordPolicy(); if (policy != null) { expiredPasswordsPolicyValue = policy.getExpiredPasswords(); } if (expiredPasswordsPolicyValue != -1) { user.getCredentials().remove(credentialEntity); credentialEntity.setType(UserCredentialModel.PASSWORD_HISTORY); user.getCredentials().add(credentialEntity); List<CredentialEntity> credentialEntities = getCredentialEntities(user, UserCredentialModel.PASSWORD_HISTORY); if (credentialEntities.size() > expiredPasswordsPolicyValue - 1) { user.getCredentials() .removeAll( credentialEntities.subList( expiredPasswordsPolicyValue - 1, credentialEntities.size())); } credentialEntity = setCredentials(user, cred); 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); } } }
private CredentialEntity setCredentials(UserEntity user, UserCredentialModel cred) { CredentialEntity credentialEntity = new CredentialEntity(); credentialEntity.setType(cred.getType()); credentialEntity.setDevice(cred.getDevice()); return credentialEntity; }