@RequestMapping("/verifyEmail")
public String verifyEmail(@RequestParam String email, @RequestParam String mac, HttpSession session) {
if (!crypto.isMacValid(email, mac)) {
LOGGER.warn("Mac code is not valid for email(\"" + email + "\").");
session.setAttribute(WebAttributes.AUTHENTICATION_EXCEPTION, new AuthenticationCredentialsNotFoundException("Email verification code is corrupted. Your email hasn't been verified."));
return "redirect:../pages/dashboard.html";
}
final SecurityHelper.UserDetails userDetails = securityHelper.getUserDetailsByEmail(email);
if (userDetails == null) {
LOGGER.warn("Account with email(\"" + email + "\") doesn't exist.");
session.setAttribute(WebAttributes.AUTHENTICATION_EXCEPTION, new AuthenticationCredentialsNotFoundException("Account with this email doesn't exist."));
return "redirect:../pages/dashboard.html";
}
if (userDetails.emailVerified) {
session.setAttribute(SUCCESS_MESSAGE, "Your email already has been verified. Please log in.");
} else {