gpt4 book ai didi

java - AWS - 如何在 Java Web 应用程序的子域和域之间共享 session ?

转载 作者:行者123 更新时间:2023-11-28 22:39:44 25 4
gpt4 key购买 nike

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

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

我读过 this answer解释这个问题,虽然我理解这个理论,但我不确定如何实际实现它。我尝试将 www.myapp.com 直接指向 myapp.com 作为 Route 53 上的别名。我还尝试将 EB 配置为使用 Elastic Load Balancer 并检查了 Sticky Sessions 选项。

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

最佳答案

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

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

关于java - AWS - 如何在 Java Web 应用程序的子域和域之间共享 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46759681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com