@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.setCreatedDate(credModel.getCreatedDate()); credentialEntity.setUser(user); em.persist(credentialEntity); user.getCredentials().add(credentialEntity); } credentialEntity.setValue(credModel.getValue()); credentialEntity.setSalt(credModel.getSalt()); credentialEntity.setDevice(credModel.getDevice()); credentialEntity.setHashIterations(credModel.getHashIterations()); credentialEntity.setCounter(credModel.getCounter()); credentialEntity.setAlgorithm(credModel.getAlgorithm()); credentialEntity.setDigits(credModel.getDigits()); credentialEntity.setPeriod(credModel.getPeriod()); em.flush(); }
private void setValue(CredentialEntity credentialEntity, UserCredentialModel cred) { UserCredentialValueModel encoded = PasswordHashManager.encode(session, realm, cred.getValue()); credentialEntity.setCreatedDate(Time.toMillis(Time.currentTime())); credentialEntity.setAlgorithm(encoded.getAlgorithm()); credentialEntity.setValue(encoded.getValue()); credentialEntity.setSalt(encoded.getSalt()); credentialEntity.setHashIterations(encoded.getHashIterations()); }