@RequestMapping(value="/confirm", method = RequestMethod.POST)
public ModelAndView processConfirmationForm(ModelAndView modelAndView, BindingResult bindingResult, @RequestParam Map requestParams, RedirectAttributes redir) {
modelAndView.setViewName("confirm");
Zxcvbn passwordCheck = new Zxcvbn();
Strength strength = passwordCheck.measure(requestParams.get("password"));
if (strength.getScore() < 3) {
bindingResult.reject("password");
redir.addFlashAttribute("errorMessage", "Your password is too weak. Choose a stronger one.");
modelAndView.setViewName("redirect:confirm?token=" + requestParams.get("token"));
System.out.println(requestParams.get("token"));
return modelAndView;
}
// Find the user associated with the reset token
User user = userService.findByConfirmationToken(requestParams.get("token"));
// Set new password
user.setPassword(bCryptPasswordEncoder.encode(requestParams.get("password")));
// Set user to enabled
user.setEnabled(true);
// Save user
userService.saveUser(user);
modelAndView.addObject("successMessage", "Your password has been set!");
return modelAndView;
}