@RequestMapping(value = "/register", method = RequestMethod.POST) public String register( @ModelAttribute("UserForm") UserForm userForm, BindingResult result, HttpServletRequest request, Model model, @RequestParam("recaptcha_challenge_field") String challangeField, @RequestParam("recaptcha_response_field") String responseField, RedirectAttributes attributes, HttpServletResponse response) throws IOException { // check captcha String remoteAddress = request.getRemoteAddr(); ReCaptchaResponse reCaptchaResponse = this.reCaptcha.checkAnswer(remoteAddress, challangeField, responseField); if (!reCaptchaResponse.isValid()) { model.addAttribute(PathHolder.ATTRIBUTE_NAME__MESSAGE, PathHolder.MESSAGE__WRONG_CAPTCHA); model.addAttribute(PathHolder.ATTRIBUTE_NAME__USERFORM, userForm); LOG.info(PathHolder.MESSAGE__WRONG_CAPTCHA); return PathHolder.PATH__REGISTRATION_PAGE; } // validate form new UserFormValidator().validate(userForm, result); if (result.hasErrors()) { model.addAttribute(PathHolder.ATTRIBUTE_NAME__MESSAGE, PathHolder.MESSAGE__WRONG_USER_DATA); model.addAttribute(PathHolder.ATTRIBUTE_NAME__USERFORM, userForm); LOG.warn(PathHolder.MESSAGE__WRONG_USER_DATA); return PathHolder.PATH__REGISTRATION_PAGE; } // check login String login = userForm.getLogin(); try { if (!userService.checkLogin(userForm.getLogin())) { model.addAttribute(PathHolder.ATTRIBUTE_NAME__MESSAGE, PathHolder.MESSAGE__LOGIN_BUSY); model.addAttribute(PathHolder.ATTRIBUTE_NAME__USERFORM, userForm); LOG.warn("Can't check login " + login); return PathHolder.PATH__REGISTRATION_PAGE; } // if OK userService.createUser(createUser(userForm)); } catch (Exception e) { model.addAttribute( PathHolder.ATTRIBUTE_NAME__MESSAGE, PathHolder.MESSAGE__INTERNAL_SERVICE_ERROR); model.addAttribute(PathHolder.ATTRIBUTE_NAME__USERFORM, userForm); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); LOG.error("Can't save new user " + userForm.getLogin(), e); return PathHolder.PATH__REGISTRATION_PAGE; } attributes.addFlashAttribute( PathHolder.ATTRIBUTE_NAME__MESSAGE, PathHolder.MESSAGE__REGISTRATION_COMPLETE); return PathHolder.PATH__REDIRECT + PathHolder.PATH__LOGIN_PAGE; }
@RequestMapping(value = PathHolder.PATH__REQUEST_CHECK_LOGIN, method = RequestMethod.GET) public boolean checkLogin(@RequestParam(PathHolder.REQUEST_PARAM__LOGIN) String login) throws Exception { return userService.checkLogin(login); }