HTTPRequest.getSession在会话失效后返回一个新会话

时间:2017-11-29 10:07:01

标签: session tomcat8

我开发了一个目前托管在tomcat 8.5.I5中的网络应用程序。我正在尝试用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()无效();

问题是这只是第一次有效。第二次它继续询问登录。似乎会话是根据请求创建的。

1 个答案:

答案 0 :(得分:0)

当您定义没有点(。)的主机名时,问题似乎就出现了。例如,我使用localhost进行测试。使用域名malaka.com向hosts文件添加条目并用于访问Web应用程序后,问题已解决。