CheckSessionFilter.java 文件源码

java
阅读 34 收藏 0 点赞 0 评论 0

项目:yadaframework 作者:
@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);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号