@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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die servlet-API unterstützt keine "ausschließen" URL-Muster.
Ihre beste Wette ist, um nur anzeigen auf
/*
und vergleichen Sie dieHttpServletRequest#getRequestURI()
gegen die Menge der erlaubten Pfade.InformationsquelleAutor BalusC
Können Sie
initParam
haben einige ausgeschlossen-Muster und realisieren Ihre Logik. Dies ist im Grunde das gleiche wie BalusC ist beantworten, außer mitinitParam
geschrieben werden kann in der web.xml wenn Sie wollen/müssen.Unten ich Ignoriere einige binäre (jpeg jpg png pdf) Erweiterungen:
InformationsquelleAutor nacho4d