Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @WebServlet("/login")
- public class LoginServlet extends HttpServlet {
- private static final long serialVersionUID = -8889013342089998973L;
- private static final Logger l = Logger.getLogger(LoginServlet.class);
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- HttpClient client = HttpClientBuilder.create().build();
- HttpPost post = new HttpPost("https://www.google.com/recaptcha/api/siteverify");
- List<NameValuePair> arguments = new ArrayList<>();
- arguments.add(new BasicNameValuePair("secret", "6LedYjkUAAAAAAqUESIc9qslL2gVT0vltEUeztlA"));
- arguments.add(new BasicNameValuePair("response", req.getParameter("g-recaptcha-response")));
- try {
- post.setEntity(new UrlEncodedFormEntity(arguments));
- HttpResponse response = client.execute(post);
- JsonElement je = new JsonParser().parse(EntityUtils.toString(response.getEntity()));
- JsonObject jo = je.getAsJsonObject();
- boolean success = jo.get("success").getAsBoolean();
- if (!success) {
- req.setAttribute("error", "Robots are not welcome.");
- getServletContext().getRequestDispatcher("/logon.jsp").forward(req, resp);
- return;
- }
- } catch (IOException e) {
- e.printStackTrace();
- req.setAttribute("error", "Robot checking is failed. Please try again.");
- getServletContext().getRequestDispatcher("/logon.jsp").forward(req, resp);
- return;
- }
- String email = req.getParameter("j_username");
- String password = req.getParameter("j_password");
- if (!email.matches("^[A-Za-z0-9]+@[a-z0-9]+(?:.[a-z]+[a-z]*)+$")) {
- req.setAttribute("error", "Email must be valid.");
- getServletContext().getRequestDispatcher("/logon.jsp").forward(req, resp);
- return;
- }
- l.info("User " + email + " sent the password.");
- boolean remember = "on".equals(req.getParameter("remember_me"));
- l.info("Remember me mode is " + remember + ".");
- try {
- User user = new User();
- try {
- user.setPasswordRaw(password);
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- user.setEmail(email);
- l.info("Signing in " + user.getEmail());
- req.login(user.getEmail(), user.getPassword());
- l.info("If user succeed with login for email " + email + " the random UUID is generated.");
- String randomUUID = UUID.randomUUID().toString();
- /*try {
- if (remember) {
- UserDAO.INSTANCE.setUUID(user.getEmail(), randomUUID);
- l.info("For user " + email + " uuid is stored to db.");
- Cookies.addCookie(req, resp, Cookies.COOKIE_NAME, randomUUID, Cookies.COOKIE_AGE);
- l.info("For user " + email + " uuid cookie is added to the forwarded response.");
- } else {
- UserDAO.INSTANCE.deleteUUID(user.getEmail());
- l.info("For user " + email + " uuid is cleared from the db");
- Cookies.removeCookie(req, resp, Cookies.COOKIE_NAME);
- l.info("For user " + email + " uuid cookie is removed i.e. set to 0 age in forwarded response");
- }
- } catch (SQLException e) {
- l.error(e.getMessage());
- l.error(e.getSQLState());
- l.error(e.getLocalizedMessage());
- }*/
- } catch (ServletException e) {
- String errorMessage = "Email or password is incorrect, please try again.";
- l.info("Some error occurs for " + email + "; the error message is: " + e.getLocalizedMessage());
- if (!e.getLocalizedMessage().equals("Login failed")) {
- errorMessage = e.getLocalizedMessage();
- }
- req.setAttribute("error", errorMessage);
- getServletContext().getRequestDispatcher("/logon.jsp").forward(req, resp);
- return;
- }
- String redirectTo = req.getParameter("url");
- l.info("For user " + email + " the page is redirected to " + "the initial url user tried to access.");
- resp.sendRedirect(redirectTo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement