@WebFilter-exclude-url-pattern

Ich einen filter verwenden, um zu überprüfen, URL-Muster für den angemeldeten Benutzer.

Aber ich habe viele URL-Muster, die ich filtern müssen.

{ "/table/*", "/user/*", "/contact/*", "/run/*", "/conf/*", ..., ..., ...}

Ist es immer wartbaren. Es wird einfacher sein, nur um ausschließen:

{ "/", "/login", "/logout", "/register" }

Wie kann ich das erreichen?

@WebFilter(urlPatterns = { "/table/*","/user/*", "/contact/*","/run/*","/conf/*"})
public class SessionTimeoutRedirect implements Filter {

    protected final Logger logger = LoggerFactory.getLogger("SessionFilter");

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        if (request.getSession().getAttribute("Id") != null) {
            chain.doFilter(req, res);
        } else {
            logger.debug("session is null:"+request.getRequestURL());                    
            response.sendRedirect(request.getContextPath()+"/login");
        }
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

    @Override
    public void destroy() {

    }

}

InformationsquelleAutor user2492364 | 2015-07-09

Schreibe einen Kommentar