@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public Customer saveCustomer(Customer customer) { return saveCustomer(customer, customer.isRegistered()); }
@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public Customer registerCustomer(Customer customer, String password, String passwordConfirm) { customer.setRegistered(true); // When unencodedPassword is set the save() will encode it if (customer.getId() == null) { customer.setId(findNextCustomerId()); } customer.setUnencodedPassword(password); Customer retCustomer = saveCustomer(customer); createRegisteredCustomerRoles(retCustomer); HashMap<String, Object> vars = new HashMap<String, Object>(); vars.put("customer", retCustomer); sendEmail(customer.getEmailAddress(), getRegistrationEmailInfo(), vars); notifyPostRegisterListeners(retCustomer); return retCustomer; }
@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public Customer changePassword(PasswordChange passwordChange) { Customer customer = readCustomerByUsername(passwordChange.getUsername()); customer.setUnencodedPassword(passwordChange.getNewPassword()); customer.setPasswordChangeRequired(passwordChange.getPasswordChangeRequired()); customer = saveCustomer(customer); for (PasswordUpdatedHandler handler : passwordChangedHandlers) { handler.passwordChanged(passwordChange, customer, passwordChange.getNewPassword()); } return customer; }
@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public Customer resetPassword(PasswordReset passwordReset) { Customer customer = readCustomerByUsername(passwordReset.getUsername()); String newPassword = PasswordUtils.generateSecurePassword(passwordReset.getPasswordLength()); customer.setUnencodedPassword(newPassword); customer.setPasswordChangeRequired(passwordReset.getPasswordChangeRequired()); customer = saveCustomer(customer); for (PasswordUpdatedHandler handler : passwordResetHandlers) { handler.passwordChanged(passwordReset, customer, newPassword); } return customer; }
@Override @Transactional(TransactionUtils.DEFAULT_TRANSACTION_MANAGER) public GenericResponse resetPasswordUsingToken(String username, String token, String password, String confirmPassword) { GenericResponse response = new GenericResponse(); Customer customer = null; if (username != null) { customer = customerDao.readCustomerByUsername(username); } checkCustomer(customer, response); checkPassword(password, confirmPassword, response); CustomerForgotPasswordSecurityToken fpst = checkPasswordResetToken(token, customer, response); if (!response.getHasErrors()) { if (!customer.getId().equals(fpst.getCustomerId())) { if (LOG.isWarnEnabled()) { LOG.warn("Password reset attempt tried with mismatched customer and token " + customer.getId() + ", " + StringUtil.sanitize(token)); } response.addErrorCode("invalidToken"); } } if (!response.getHasErrors()) { customer.setUnencodedPassword(password); customer.setPasswordChangeRequired(false); saveCustomer(customer); invalidateAllTokensForCustomer(customer); } return response; }