public void validate(PasswordChange passwordChange, Errors errors) {
String currentPassword = passwordChange.getCurrentPassword();
String password = passwordChange.getNewPassword();
String passwordConfirm = passwordChange.getNewPasswordConfirm();
if (enableCurrentPasswordCheck) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "currentPassword", "currentPassword.required");
}
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "newPassword", "newPassword.required");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "newPasswordConfirm", "newPasswordConfirm.required");
if (!errors.hasErrors()) {
if (enableCurrentPasswordCheck && !customerService.isPasswordValid(currentPassword, CustomerState.getCustomer().getPassword(), CustomerState.getCustomer())) {
errors.rejectValue("currentPassword", "currentPassword.invalid");
}
if (!passwordConfirm.equals(password)) {
errors.rejectValue("newPasswordConfirm", "newPasswordConfirm.invalid");
}
if (!password.matches(getValidPasswordRegex())) {
errors.rejectValue("newPassword", "newPassword.invalid");
}
}
}