Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua.nure.khmelik.SummaryTask4.web.filter;
- import java.io.IOException;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.log4j.Logger;
- public class LoginFilter implements Filter {
- private static final Logger LOGGER = Logger.getLogger(LoginFilter.class);
- private String excludePatterns;
- @Override
- public void init(FilterConfig cfg) throws ServletException {
- this.excludePatterns = cfg.getInitParameter("excludePatterns");
- LOGGER.debug("LoginFilter initialized.");
- }
- @Override
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- HttpServletRequest req = (HttpServletRequest) request;
- HttpServletResponse resp = (HttpServletResponse) response;
- HttpSession session = req.getSession();
- if (session.getAttribute("user") != null
- || matchesExcludePatterns(req.getRequestURL())) {
- chain.doFilter(request, response);
- } else if (req.getRequestURI().matches(".*(css|jpg|png|gif|js)")) {
- LOGGER.debug("Loading js/css/gif/png/jsp files");
- chain.doFilter(request, response);
- } else {
- LOGGER.debug("No user logged in " + req.getRequestURI());
- resp.sendRedirect("login");
- }
- }
- private boolean matchesExcludePatterns(StringBuffer requestURL) {
- Pattern pattern = Pattern.compile("(.)*(" + excludePatterns + ")(.)*");
- Matcher matcher = pattern.matcher(requestURL);
- LOGGER.debug("REQUESTED URL " + requestURL);
- return matcher.matches();
- }
- @Override
- public void destroy() {
- LOGGER.debug("LoginFilter instance destroyed.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement