/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url = request.getParameter("url_req"); String user = request.getParameter("username"); String password = request.getParameter("password"); String[] remember = request.getParameterValues("cookie"); try { User u = RegistrationManager.verifyUser(user, password); if (u != null) { if (!u.getProfile().equals(RegistrationManager.NO_PROFILES)) { request.getSession().setAttribute("user", u); if (remember != null) { Cookie cookie = new Cookie("user", user); cookie.setMaxAge(30 * 24 * 60 * 60); // 1 month. cookie.setPath("/"); response.addCookie(cookie); } u.updateLastAccess(user); if (url.equals("null")) response.sendRedirect("index.jsp"); else response.sendRedirect(url); } else { request.setAttribute( StringConstants.MESSAGE_ATTRIBUTE, StringConstants.MESSAGE_DOMAIN_ERROR); request.getRequestDispatcher("login.jsp").forward(request, response); } } else { request.setAttribute(StringConstants.MESSAGE_ATTRIBUTE, StringConstants.MESSAGE_ERROR); request.getRequestDispatcher("login.jsp").forward(request, response); } } catch (IOException | ServletException e) { request.setAttribute(StringConstants.MESSAGE_ATTRIBUTE, StringConstants.MESSAGE_ERROR_SERVER); request.getRequestDispatcher("login.jsp").forward(request, response); } }