commit
8a15a50227
|
@ -1,7 +1,5 @@
|
|||
package org.baeldung.web.controller;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
|
@ -20,6 +18,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.mail.MailAuthenticationException;
|
||||
import org.springframework.mail.SimpleMailMessage;
|
||||
import org.springframework.mail.javamail.JavaMailSender;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
|
@ -85,9 +84,6 @@ public class RegistrationController {
|
|||
|
||||
final User user = verificationToken.getUser();
|
||||
final Calendar cal = Calendar.getInstance();
|
||||
final DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
|
||||
System.out.println(df.format(verificationToken.getExpiryDate()));
|
||||
System.out.println(df.format(cal.getTime()));
|
||||
|
||||
if ((verificationToken.getExpiryDate().getTime() - cal.getTime().getTime()) <= 0) {
|
||||
model.addAttribute("message", messages.getMessage("auth.message.expired", null, locale));
|
||||
|
@ -129,9 +125,13 @@ public class RegistrationController {
|
|||
try {
|
||||
final SimpleMailMessage email = constructResetVerificationTokenEmail(request.getContextPath(), request.getLocale(), newToken, user);
|
||||
mailSender.send(email);
|
||||
} catch (final Exception e) {
|
||||
// MailException
|
||||
} catch (final MailAuthenticationException e) {
|
||||
LOGGER.debug("MailAuthenticationException");
|
||||
return "redirect:/emailError.html?lang=" + locale.getLanguage();
|
||||
} catch (final Exception e) {
|
||||
LOGGER.debug(e.getLocalizedMessage());
|
||||
model.addAttribute("error", e.getLocalizedMessage());
|
||||
return "redirect:/login.html?lang=" + locale.getLanguage();
|
||||
}
|
||||
model.addAttribute("message", messages.getMessage("message.resendToken", null, locale));
|
||||
return "redirect:/login.html?lang=" + locale.getLanguage();
|
||||
|
@ -141,24 +141,23 @@ public class RegistrationController {
|
|||
public String resetPassword(final WebRequest request, final Model model, @RequestParam("email") final String userEmail) {
|
||||
final User user = userService.findUserByEmail(userEmail);
|
||||
if (user == null) {
|
||||
model.addAttribute("message", messages.getMessage("auth.message.expired", null, request.getLocale()));
|
||||
model.addAttribute("message", messages.getMessage("message.userNotFound", null, request.getLocale()));
|
||||
return "redirect:/login.html?lang=" + request.getLocale().getLanguage();
|
||||
}
|
||||
|
||||
final String token = UUID.randomUUID().toString();
|
||||
userService.createPasswordResetTokenForUser(user, token);
|
||||
try {
|
||||
final String url = request.getContextPath() + "/user/changePassword?id=" + user.getId() + "&token=" + token;
|
||||
final String message = messages.getMessage("message.resetPassword", null, request.getLocale());
|
||||
final SimpleMailMessage email = new SimpleMailMessage();
|
||||
email.setTo(user.getEmail());
|
||||
email.setSubject("Reset Password");
|
||||
email.setText(message + " \r\n" + "http://localhost:8080" + url);
|
||||
System.out.println(email.getText());
|
||||
final SimpleMailMessage email = constructResetTokenEmail(request.getContextPath(), request.getLocale(), token, user);
|
||||
LOGGER.debug(email.getText());
|
||||
mailSender.send(email);
|
||||
System.out.println(email.getText());
|
||||
} catch (final Exception e) {
|
||||
} catch (final MailAuthenticationException e) {
|
||||
LOGGER.debug("MailAuthenticationException");
|
||||
return "redirect:/emailError.html?lang=" + request.getLocale().getLanguage();
|
||||
} catch (final Exception e) {
|
||||
LOGGER.debug(e.getLocalizedMessage());
|
||||
model.addAttribute("error", e.getLocalizedMessage());
|
||||
return "redirect:/login.html?lang=" + request.getLocale().getLanguage();
|
||||
}
|
||||
model.addAttribute("message", messages.getMessage("message.resetPassword", null, request.getLocale()));
|
||||
return "redirect:/login.html?lang=" + request.getLocale().getLanguage();
|
||||
|
@ -173,8 +172,6 @@ public class RegistrationController {
|
|||
if (passToken == null || user.getId() != id) {
|
||||
final String message = messages.getMessage("auth.message.invalidToken", null, locale);
|
||||
model.addAttribute("message", message);
|
||||
System.out.println(id);
|
||||
System.out.println(passToken);
|
||||
return "redirect:/login.html?lang=" + locale.getLanguage();
|
||||
}
|
||||
|
||||
|
@ -214,6 +211,16 @@ public class RegistrationController {
|
|||
return email;
|
||||
}
|
||||
|
||||
private final SimpleMailMessage constructResetTokenEmail(final String contextPath, final Locale locale, final String token, final User user) {
|
||||
final String url = contextPath + "/user/changePassword?id=" + user.getId() + "&token=" + token;
|
||||
final String message = messages.getMessage("message.resetPassword", null, locale);
|
||||
final SimpleMailMessage email = new SimpleMailMessage();
|
||||
email.setTo(user.getEmail());
|
||||
email.setSubject("Reset Password");
|
||||
email.setText(message + " \r\n" + "http://localhost:8080" + url);
|
||||
return email;
|
||||
}
|
||||
|
||||
private User createUserAccount(final UserDto accountDto) {
|
||||
User registered = null;
|
||||
try {
|
||||
|
@ -223,5 +230,4 @@ public class RegistrationController {
|
|||
}
|
||||
return registered;
|
||||
}
|
||||
|
||||
}
|
|
@ -57,4 +57,5 @@ label.form.resendRegistrationToken=Re-send Token
|
|||
message.resendToken=We will send you a message with a new registration token to your email account.
|
||||
message.forgetPassword=Forget Password
|
||||
message.resetPassword=Reset Password
|
||||
message.updatePassword=Update Password
|
||||
message.updatePassword=Update Password
|
||||
message.userNotFound=User Not Found
|
|
@ -13,27 +13,27 @@
|
|||
<title><spring:message code="message.resetPassword"></spring:message></title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="span12">
|
||||
<H1>
|
||||
<spring:message code="message.resetPassword"></spring:message>
|
||||
</H1>
|
||||
<form:form action="user/resetPassword" method="POST" enctype="utf8">
|
||||
<br>
|
||||
|
||||
<tr>
|
||||
<td><label><spring:message code="label.user.email"></spring:message></label></td>
|
||||
<td><input name="email" type="email" value="" /></td>
|
||||
</tr>
|
||||
|
||||
<button type="submit">
|
||||
<spring:message code="message.resetPassword"></spring:message>
|
||||
</button>
|
||||
</form:form>
|
||||
<br> <a href="<c:url value="registration.html" />"><spring:message
|
||||
code="label.form.loginSignUp"></spring:message></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="span12">
|
||||
<h1>
|
||||
<spring:message code="message.resetPassword"></spring:message>
|
||||
</h1>
|
||||
<form:form action="user/resetPassword" method="POST" enctype="utf8">
|
||||
<br>
|
||||
|
||||
<tr>
|
||||
<td><label><spring:message code="label.user.email"></spring:message></label></td>
|
||||
<td><input name="email" type="email" value="" /></td>
|
||||
</tr>
|
||||
|
||||
<button type="submit">
|
||||
<spring:message code="message.resetPassword"></spring:message>
|
||||
</button>
|
||||
</form:form>
|
||||
<br> <a href="<c:url value="registration.html" />"><spring:message
|
||||
code="label.form.loginSignUp"></spring:message></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -25,8 +25,6 @@
|
|||
<div class="alert alert-error">
|
||||
<!-- <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/> -->
|
||||
<spring:message code="message.badCredentials"></spring:message>
|
||||
<a href="<c:url value="/forgetPassword.html" />"><spring:message
|
||||
code="message.forgetPassword"></spring:message></a>
|
||||
</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
@ -89,6 +87,9 @@ code="message.forgetPassword"></spring:message></a>
|
|||
<br> Current Locale : ${pageContext.response.locale} <br> <a
|
||||
href="<c:url value="/user/registration" />"><spring:message
|
||||
code="label.form.loginSignUp"></spring:message></a>
|
||||
<br><br><br>
|
||||
<a href="<c:url value="/forgetPassword.html" />"><spring:message
|
||||
code="message.resetPassword"></spring:message></a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
Loading…
Reference in New Issue