【问题标题】:too many sessions created by Spring MVCSpring MVC 创建的会话过多
【发布时间】:2013-09-11 11:19:00
【问题描述】:

我正在使用 Spring MVC、MySql 和 Tomcat 7。 目前我正在开发的应用程序可以通过 2 个 URL 访问,即 IP:PORT/APP 和 www.app.com。

通过 www.app.com 访问时,我看到为我打开的每个页面/链接创建了一个会话,但当我通过 IP:PORT/APP 访问时,它不会发生。

我在每个页面都检查了登录用户,但由于会话过多,检查失败,即使在登录后我也被重定向到我的登录页面。

此外,当我打开 www.app.com 索引页面时,我会在地址栏上看到一个 jsessionid,而不是当我通过 IP 打开它时。

感谢任何帮助/指导。

【问题讨论】:

    标签: spring session spring-mvc


    【解决方案1】:

    当您通过域名 (www.app.com) 访问页面时,似乎找不到 cookie 支持,因此 url 重写 正在完成(即在 url 末尾附加 jsessionid)。但是通过 IP 地址 (IP:PORT/APP) 访问同一页面时没有观察到这种情况,这意味着此时启用了 cookie 支持。

    您可以检查您是否启用了一些不允许使用 cookie 的安全设置

    除此之外,似乎即使是 url 重写也无济于事,因为正在为每个请求创建会话。

    您可以使用一些 HTTP 拦截器来分析每种情况下发送的请求和接收的响应。您可以在 Chrome 中使用 Developer Tool 进行检查。在 Google Chrome 中加载您的页面,右键单击页面并单击“检查元素”。打开“网络”标签。重新加载页面。您现在可以检查每个请求发送的 HTTP 请求标头 和接收的 响应标头。分析使用IP地址的请求和使用域名的请求之间的区别。

    此外,请分享应用的架构以及您测试应用的环境

    【讨论】:

    • 您好,感谢您的回复。根据您的建议,我确实在 google chrome 中进行了验证。我注意到请求中缺少一些参数: - www.app.com 中没有缓存控制 - www.app.com 中没有 Cookie
    • 我正在使用 Spring MVC 在 Linux 服务器上部署 Tomcat 7 和 Mysql 进行开发
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多