/** * Changes the user's WLAN password. Checks the password quality and the correct authentication for the login password before. * * @param user * @param loginPassword * @param newWlanPassword * @return Error message key if any check failed or null, if successfully changed. */ @Override @Transactional(readOnly = false, propagation = Propagation.REQUIRED) public List<I18nKeyAndParams> changeWlanPassword(PFUserDO user, final String loginPassword, final String newWlanPassword) { Validate.notNull(user); Validate.notNull(loginPassword); Validate.notNull(newWlanPassword); final List<I18nKeyAndParams> errorMsgKeys = passwordQualityService.checkPasswordQuality(newWlanPassword); if (errorMsgKeys.isEmpty() == false) { return errorMsgKeys; } accessChecker.checkRestrictedOrDemoUser(); user = getUser(user.getUsername(), loginPassword, false); // get user from DB to persist the change of the wlan password time if (user == null) { return Collections.singletonList(new I18nKeyAndParams(MESSAGE_KEY_LOGIN_PASSWORD_WRONG)); } onWlanPasswordChange(user, true); // set last change time and creaty history entry Login.getInstance().wlanPasswordChanged(user, newWlanPassword); // change the wlan password log.info("WLAN Password changed for user: " + user.getId() + " - " + user.getUsername()); return Collections.emptyList(); }
Validate.notNull(newPassword); final List<I18nKeyAndParams> errorMsgKeys = passwordQualityService.checkPasswordQuality(oldPassword, newPassword); if (errorMsgKeys.isEmpty() == false) { return errorMsgKeys;
List<I18nKeyAndParams> passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, null); assertTrue("Empty password not allowed.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_MIN_LENGTH_ERROR, 10))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, ""); assertTrue("Empty password not allowed.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_MIN_LENGTH_ERROR, 10))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, "abcd12345"); assertTrue("Password with less than " + "10" + " characters not allowed.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_MIN_LENGTH_ERROR, 10))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, "ProjectForge"); assertTrue("Password must have one non letter at minimum.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_NONCHAR_ERROR))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, "1234567890"); assertTrue("Password must have one non letter at minimum.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_CHARACTER_ERROR))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, "12345678901"); assertTrue("Password must have one non letter at minimum.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_CHARACTER_ERROR))); passwordQualityMessages = passwordQualityService.checkPasswordQuality(STRONGOLDPW, STRONGOLDPW); assertTrue("Password must New password should not be the same as the old one.", passwordQualityMessages.contains(new I18nKeyAndParams(MESSAGE_KEY_PASSWORD_OLD_EQ_NEW_ERROR)));
final List<I18nKeyAndParams> errorMsgKeys = passwordQualityService.checkPasswordQuality(passwordInput); if (errorMsgKeys.isEmpty() == false) { for (I18nKeyAndParams errorMsgKey : errorMsgKeys) {
final List<I18nKeyAndParams> errorMsgKeys = passwordQualityService.checkPasswordQuality(passwordInput); if (errorMsgKeys.isEmpty() == false) { for (I18nKeyAndParams errorMsgKey : errorMsgKeys) {
final List<I18nKeyAndParams> errorMsgKeys = passwordQualityService.checkPasswordQuality(passwordInput); if (errorMsgKeys.isEmpty() == false) { adminUser.setPassword(null);