Java会话无效和超时不起作用



一切正常,但注销和会话销毁不工作,我不知道为什么。

为什么我可以访问保护区,如果会话无效或会话超时达到。

看这个HTTP-Server-Monitor

'http://localhost:8080/psg/admin/'
<security-constraint>
    <display-name>My First Sec Constraint</display-name>
    <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>
        <url-pattern>/admin/*</url-pattern>
        ..

登录Servlet映射到/admin/

    HttpSession session = request.getSession();
    if (session != null) {
        session.setAttribute("ID", session.getId());
        session.setAttribute("User", request.getRemoteUser());
        session.setAttribute("isAuthenticated", true);
        getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
    }     

Logout Servlet映射到/admin/Logout

    HttpSession session = request.getSession(false);
    if(session!=null){
        session.invalidate();
        response.sendRedirect(request.getContextPath());
    }

同样的问题,如果会话超时必须销毁会话。如果我进入保护区/psg/admin/

,我也可以在此持续时间之后获得有效的会话。
<session-timeout>1</session-timeout>

在基本和摘要身份验证的情况下,浏览器将重新发送用户凭据,因此实际上没有注销,只有会话无效。

您需要使用基于表单的身份验证来注销。

相关内容

  • 没有找到相关文章

最新更新