@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
// FIXME per qualche strana ragione la sessione non scade se questa url viene ripetutamente chiamata!
// Per ovviare al problema, faccio il controllo via js con un timeout pari a quello di sessione, in modo che quando arriva è già scaduta,
// e male che vada la sessione dura il doppio del session timeout impostato (metti che un ajax rinfresca subito dopo il page load per cui il js che entra qui si trova la sessione ancora attiva e la rinfresca)
if ((servletRequest instanceof HttpServletRequest) && (servletResponse instanceof HttpServletResponse)) {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String requestUri = request.getRequestURI();
if (requestUri.endsWith(COMMAND)) {
HttpSession session = request.getSession(false);
String result = "expired";
if (session!=null) {
result = "active";
}
if (log.isDebugEnabled()) {
log.debug(COMMAND + " returned " + result + (session!=null?" "+session.getId():""));
}
Writer out = response.getWriter();
out.write(result);
out.close();
return;
}
}
filterChain.doFilter(servletRequest, servletResponse);
}
CheckSessionFilter.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:yadaframework
作者:
评论列表
文章目录