HTTPRequest.getSession returns 会话失效后的新会话
HTTPRequest.getSession returns a fresh session after session is invalidated
我开发了一个当前托管在 tomcat 8.5.I5 中的 Web 应用程序。我正在尝试使用 IDP 实现 SSO,在这里我为此使用了过滤器。登录成功后我设置用户名如下
HttpSession httpSession = request.getSession();
httpSession.setAttribute(SESSION_USERNAME, subject);
验证时使用了以下代码。
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession();
String userName = (String) session.getAttribute(SSOHelper.SESSION_USERNAME);
if (userName == null && request.getRequestURI().contains("dashboard.xhtml")) {
注销实现如下
request.getSession().无效();
问题是这只适用于第一次。第二次它继续询问登录。似乎会话是根据请求创建的。
问题似乎出在您定义没有点 (.) 的主机名时。例如,我使用 localhost 进行测试。在使用域名 malaka.com 向主机文件添加条目并用于访问 Web 应用程序后,问题已解决。
我开发了一个当前托管在 tomcat 8.5.I5 中的 Web 应用程序。我正在尝试使用 IDP 实现 SSO,在这里我为此使用了过滤器。登录成功后我设置用户名如下
HttpSession httpSession = request.getSession();
httpSession.setAttribute(SESSION_USERNAME, subject);
验证时使用了以下代码。
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession();
String userName = (String) session.getAttribute(SSOHelper.SESSION_USERNAME);
if (userName == null && request.getRequestURI().contains("dashboard.xhtml")) {
注销实现如下
request.getSession().无效();
问题是这只适用于第一次。第二次它继续询问登录。似乎会话是根据请求创建的。
问题似乎出在您定义没有点 (.) 的主机名时。例如,我使用 localhost 进行测试。在使用域名 malaka.com 向主机文件添加条目并用于访问 Web 应用程序后,问题已解决。