Guest User

Untitled

a guest
Mar 29th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. @WebServlet(name = "LoginServlet", urlPatterns = {"/login"})
  2. public class LoginServlet extends HttpServlet {
  3.  
  4. private static final Logger logger = Logger.getLogger(LoginServlet.class.getName());
  5.  
  6. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  7. request.getRequestDispatcher(request.getContextPath() + "/login.xhtml").forward(request, response);
  8. }
  9.  
  10. @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  11. ServletContext ctx = request.getServletContext();
  12.  
  13. String login = (String) request.getParameter("login");
  14. String password = (String) request.getParameter("password");
  15.  
  16. Database database = Database.getInstance();
  17. User user = database.find(login, password);
  18. if (user == null) {
  19. // request.getRequestDispatcher(request.getContextPath() + "/registr").forward(request, response);
  20. ctx.log("Incorrect login or password");
  21. response.sendRedirect(request.getContextPath() + "/registr");
  22. }
  23. else {
  24. ctx.log(String.format("User %s has logged in", user));
  25. request.getSession().setAttribute("user", user);
  26. request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
  27. }
  28. }
  29. }
  30.  
  31. @WebServlet(name = "RegistrServlet", urlPatterns = {"/registr"})
  32. public class RegistrServlet extends HttpServlet {
  33.  
  34. private static final Logger logger = Logger.getLogger(RegistrServlet.class.getName());
  35.  
  36. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  37. request.getRequestDispatcher(request.getContextPath() + "/registr.xhtml").forward(request, response);
  38. }
  39.  
  40. @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  41. ServletContext ctx = request.getServletContext();
  42.  
  43. Long id = Long.valueOf(request.getParameter("id"));
  44. String login = (String) request.getParameter("login");
  45. String password = (String) request.getParameter("password");
  46.  
  47. User user = new User(id, login, password);
  48. Database database = Database.getInstance();
  49. boolean inserted = database.insert(user);
  50. if(inserted) {
  51. ctx.log(String.format("New user %s has registred", user));
  52. request.getSession().setAttribute("user", user);
  53. request.getRequestDispatcher(request.getContextPath() + "/index.xhtml").forward(request, response);
  54. }
  55. else {
  56. ctx.log("Such user already exists");
  57. }
  58. }
  59.  
  60. @Override public String getServletInfo() {
  61. return "Short description";
  62. }
  63.  
  64. }
  65.  
  66. @WebFilter("/*")
  67. public class LoginFilter implements Filter {
  68.  
  69. @Override public void doFilter(ServletRequest request,
  70. ServletResponse response,
  71. FilterChain chain) throws IOException, ServletException {
  72. HttpServletRequest req = (HttpServletRequest) request;
  73. HttpServletResponse res = (HttpServletResponse) response;
  74. HttpSession session = req.getSession(false);
  75. String loginURI = req.getContextPath() + "/login";
  76.  
  77. boolean loggedIn = session != null && session.getAttribute("user") != null;
  78. boolean loginRequest = req.getRequestURI().equals(loginURI);
  79.  
  80. if(loggedIn || loginRequest) {
  81. chain.doFilter(request, response);
  82. }
  83. else {
  84. res.sendRedirect(loginURI);
  85. }
  86. }
  87. }
Add Comment
Please, Sign In to add comment