diff --git a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java index 9c399600660ef1fa1f39fe7f77bde2bd2878a4e0..2014a08ea545d5b690d673aaf8a87d781a6ea218 100644 --- a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java +++ b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java @@ -437,7 +437,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple userProfile.setAuthProvider(UserProfile.AuthProvider.ARSNOVA); userProfile.setLoginId(lcUsername); account.setPassword(encodePassword(password)); - account.setActivationKey(RandomStringUtils.randomAlphanumeric(32)); + account.setActivationKey(RandomStringUtils.randomAlphanumeric(8)); userProfile.setCreationTimestamp(new Date()); /* Repository is accessed directly without EntityService to skip permission check */ @@ -461,15 +461,9 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple private void sendActivationEmail(final UserProfile userProfile) { final String activationKey = userProfile.getAccount().getActivationKey(); - final String activationUrl = MessageFormat.format( - "{0}{1}/login?action=activate&username={3}&key={4}", - rootUrl, - customizationPath, - UriUtils.encodeQueryParam(userProfile.getLoginId(), "UTF-8"), - activationKey); sendEmail(userProfile, registeredProperties.getRegistrationMailSubject(), - MessageFormat.format(registeredProperties.getRegistrationMailBody(), activationUrl, activationKey)); + MessageFormat.format(registeredProperties.getRegistrationMailBody(), activationKey, rootUrl)); } private void parseMailAddressPattern() { @@ -562,27 +556,15 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple throw new BadRequestException(); } - account.setPasswordResetKey(RandomStringUtils.randomAlphanumeric(32)); + account.setPasswordResetKey(RandomStringUtils.randomAlphanumeric(8)); account.setPasswordResetTime(new Date()); if (null == userRepository.save(userProfile)) { logger.error("Password reset failed. {} could not be updated.", username); } - final String resetPasswordUrl = MessageFormat.format( - "{0}{1}/login?action=resetpassword&username={3}&key={4}", - rootUrl, - customizationPath, - UriUtils.encodeQueryParam(userProfile.getLoginId(), "UTF-8"), account.getPasswordResetKey()); - - final String mailBody = MessageFormat.format( - registeredProperties.getResetPasswordMailBody(), - resetPasswordUrl, - account.getPasswordResetKey() - ); - - sendEmail(userProfile, registeredProperties.getResetPasswordMailSubject(), - MessageFormat.format(mailBody, resetPasswordUrl)); + sendEmail(userProfile, registeredProperties.getResetPasswordMailSubject(), MessageFormat.format( + registeredProperties.getResetPasswordMailBody(), account.getPasswordResetKey(), rootUrl)); } @Override diff --git a/src/main/resources/config/defaults.yml b/src/main/resources/config/defaults.yml index 0209418cfac7056ea479ad07a9048c920f797eb4..80c46a9cf875d1152e861643150e2059f3387360 100644 --- a/src/main/resources/config/defaults.yml +++ b/src/main/resources/config/defaults.yml @@ -107,16 +107,20 @@ arsnova: registration-mail-body: |- Welcome to ARSnova! - Please confirm your registration by visiting the following web address: - {0} + Here is the activation code you need for your first login to ARSnova: - Afterwards, you can log into ARSnova with your e-mail address and password. + {0} + + {1} reset-password-mail-subject: ARSnova Password Reset reset-password-mail-body: |- You requested to reset your password. - Please follow the link below to set a new password: - {0} + Here is the confirmation code you need to set a new password: + + {0} + + {1} # LDAP authentication #