Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. package ua.nure.khmelik.SummaryTask4.web.filter;
  2.  
  3. import java.io.IOException;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. import javax.servlet.Filter;
  8. import javax.servlet.FilterChain;
  9. import javax.servlet.FilterConfig;
  10. import javax.servlet.ServletException;
  11. import javax.servlet.ServletRequest;
  12. import javax.servlet.ServletResponse;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import javax.servlet.http.HttpSession;
  16.  
  17. import org.apache.log4j.Logger;
  18.  
  19. public class LoginFilter implements Filter {
  20.  
  21. private static final Logger LOGGER = Logger.getLogger(LoginFilter.class);
  22.  
  23. private String excludePatterns;
  24.  
  25. @Override
  26. public void init(FilterConfig cfg) throws ServletException {
  27. this.excludePatterns = cfg.getInitParameter("excludePatterns");
  28. LOGGER.debug("LoginFilter initialized.");
  29. }
  30.  
  31. @Override
  32. public void doFilter(ServletRequest request, ServletResponse response,
  33. FilterChain chain) throws IOException, ServletException {
  34. HttpServletRequest req = (HttpServletRequest) request;
  35. HttpServletResponse resp = (HttpServletResponse) response;
  36. HttpSession session = req.getSession();
  37. if (session.getAttribute("user") != null
  38. || matchesExcludePatterns(req.getRequestURL())) {
  39. chain.doFilter(request, response);
  40. } else if (req.getRequestURI().matches(".*(css|jpg|png|gif|js)")) {
  41. LOGGER.debug("Loading js/css/gif/png/jsp files");
  42. chain.doFilter(request, response);
  43. } else {
  44. LOGGER.debug("No user logged in " + req.getRequestURI());
  45. resp.sendRedirect("login");
  46. }
  47. }
  48.  
  49. private boolean matchesExcludePatterns(StringBuffer requestURL) {
  50. Pattern pattern = Pattern.compile("(.)*(" + excludePatterns + ")(.)*");
  51. Matcher matcher = pattern.matcher(requestURL);
  52. LOGGER.debug("REQUESTED URL " + requestURL);
  53. return matcher.matches();
  54. }
  55.  
  56. @Override
  57. public void destroy() {
  58. LOGGER.debug("LoginFilter instance destroyed.");
  59. }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement