【问题标题】:AWS - How to share session between subdomain and domain for a Java web app?AWS - 如何在 Java Web 应用程序的子域和域之间共享会话?
【发布时间】:2018-03-27 08:19:41
【问题描述】:

我有一个 Java 8 Web 应用程序在使用 AWS Elastic Beanstalk 部署到 EC2 实例的 Tomcat 8 容器上运行。然后,我将 Route 53 配置为将 myapp.com 作为别名指向 Elastic Beanstalk 端点,并对 www.myapp.com 执行相同操作。

问题是当我使用其中任何一个登录时,会话不会与另一个共享。例如,如果我使用myapp.com 登录,然后尝试访问www.myapp.com,则会要求我再次登录。 这个问题是可以重现的,反之亦然,也可以使用注销功能。

我已阅读 this answer 解释该问题,虽然我理解理论,但我不确定如何实际实施。我尝试将 www.myapp.com 直接指向 myapp.com 作为 Route 53 上的别名。我还尝试将 EB 配置为使用弹性负载均衡器并检查 Sticky Sessions 选项。

这是可以在 AWS 上配置的,还是我需要配置我的代码来适应这种情况?一个例子真的很有帮助。该应用程序是带有 JSP 的标准 Enterprise Java Web 应用程序,并使用 Spring Security 进行身份验证。

【问题讨论】:

    标签: java amazon-web-services session tomcat session-cookies


    【解决方案1】:

    基本上,您需要 Tomcat 服务器在每个响应的每个 Set-Cookie 标头上设置 domain="myapp.com"

    有很多方法可以做到这一点。但最简单的方法是在您的应用程序中编辑/src/resources/application.properties 文件并将server.session.cookie.domain 设置为myapp.com

    【讨论】:

      猜你喜欢
      • 2016-12-27
      • 1970-01-01
      • 2023-03-09
      • 2021-12-26
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 2014-01-29
      • 2017-06-11
      相关资源
      最近更新 更多