@Override public List<UserCredentialValueModel> getCredentialsDirectly() { return delegate.getCredentialsDirectly(); }
@Override public List<UserCredentialValueModel> getCredentialsDirectly() { if (updated != null) return updated.getCredentialsDirectly(); return cached.getCredentials(); }
private UserCredentialValueModel getCredentialValueModel(UserModel user, String credType) { for (UserCredentialValueModel model : user.getCredentialsDirectly()) { if (model.getType().equals(credType)) { return model; } } return null; }
public static boolean validSecret(RealmModel realm, UserModel user, String secret) { for (UserCredentialValueModel cred : user.getCredentialsDirectly()) { if (cred.getType().equals(UserCredentialModel.SECRET)) { if (cred.getValue().equals(secret)) return true; } } return false; }
private List<UserCredentialValueModel> getCredentialValueModels(UserModel user, int expiredPasswordsPolicyValue, String credType) { List<UserCredentialValueModel> credentialModels = new ArrayList<UserCredentialValueModel>(); for (UserCredentialValueModel model : user.getCredentialsDirectly()) { if (model.getType().equals(credType)) { credentialModels.add(model); } } Collections.sort(credentialModels, new Comparator<UserCredentialValueModel>() { public int compare(UserCredentialValueModel credFirst, UserCredentialValueModel credSecond) { if (credFirst.getCreatedDate() > credSecond.getCreatedDate()) { return -1; } else if (credFirst.getCreatedDate() < credSecond.getCreatedDate()) { return 1; } else { return 0; } } }); if (credentialModels.size() > expiredPasswordsPolicyValue) { return credentialModels.subList(0, expiredPasswordsPolicyValue); } return credentialModels; } }
/** * Will update password if hash iteration policy has changed * * @param realm * @param user * @param password * @return */ public static boolean validPassword(KeycloakSession session, RealmModel realm, UserModel user, String password) { UserCredentialValueModel passwordCred = null; for (UserCredentialValueModel cred : user.getCredentialsDirectly()) { if (cred.getType().equals(UserCredentialModel.PASSWORD)) { passwordCred = cred; } } if (passwordCred == null) return false; return validateHashedCredential(session, realm, user, password, passwordCred); }
public static boolean validTOTP(RealmModel realm, UserModel user, String otp) { UserCredentialValueModel passwordCred = null; OTPPolicy policy = realm.getOTPPolicy(); TimeBasedOTP validator = new TimeBasedOTP(policy.getAlgorithm(), policy.getDigits(), policy.getPeriod(), policy.getLookAheadWindow()); for (UserCredentialValueModel cred : user.getCredentialsDirectly()) { if (cred.getType().equals(UserCredentialModel.TOTP)) { if (validator.validateTOTP(otp, cred.getValue().getBytes())) { return true; } } } return false; } public static boolean validSecret(RealmModel realm, UserModel user, String secret) {
List<UserCredentialValueModel> creds = user.getCredentialsDirectly(); List<CredentialRepresentation> credReps = new ArrayList<CredentialRepresentation>(); for (UserCredentialValueModel cred : creds) {
List<UserCredentialValueModel> creds = user.getCredentialsDirectly(); for (UserCredentialValueModel cred : creds) { if (cred.getType().equals(type)) {
public static boolean validHOTP(RealmModel realm, UserModel user, String otp) { UserCredentialValueModel passwordCred = null; OTPPolicy policy = realm.getOTPPolicy(); HmacOTP validator = new HmacOTP(policy.getDigits(), policy.getAlgorithm(), policy.getLookAheadWindow()); for (UserCredentialValueModel cred : user.getCredentialsDirectly()) { if (cred.getType().equals(UserCredentialModel.HOTP)) { int counter = validator.validateHOTP(otp, cred.getValue(), cred.getCounter()); if (counter < 0) return false; cred.setCounter(counter); user.updateCredentialDirectly(cred); return true; } } return false; }
List<UserCredentialValueModel> credentials = userModel.getCredentialsDirectly(); List<CredentialEntity> credEntities = new ArrayList<CredentialEntity>(); for (UserCredentialValueModel credModel : credentials) {
public CachedUser(RealmModel realm, UserModel user) { this.id = user.getId(); this.realm = realm.getId(); this.username = user.getUsername(); this.createdTimestamp = user.getCreatedTimestamp(); this.firstName = user.getFirstName(); this.lastName = user.getLastName(); this.attributes.putAll(user.getAttributes()); this.email = user.getEmail(); this.emailVerified = user.isEmailVerified(); this.credentials.addAll(user.getCredentialsDirectly()); this.enabled = user.isEnabled(); this.totp = user.isOtpEnabled(); this.federationLink = user.getFederationLink(); this.serviceAccountClientLink = user.getServiceAccountClientLink(); this.requiredActions.addAll(user.getRequiredActions()); for (RoleModel role : user.getRoleMappings()) { roleMappings.add(role.getId()); } Set<GroupModel> groupMappings = user.getGroups(); if (groupMappings != null) { for (GroupModel group : groupMappings) { groups.add(group.getId()); } } }