我在AWS上安装了Spring Security的企业Java应用程序,配置为使用myapp.com
和www.myapp.com
。问题是,这两个会话都维持一个单独的会话(即使你已经登录另一个会话需要登录),我想解决这个问题。
此answer提及您可以通过将sessionCookieDomain
中的META-INF/context.xml
设置为根域来实现此目的 -
<Context sessionCookiePath="/" sessionCookieDomain=".myapp.com" />
但是,这不允许我在本地运行Web应用程序。我必须删除或替换它 -
<Context sessionCookiePath="/myapp" sessionCookieDomain="localhost" />
我没有必要指定它在本地运行它。那么,只有在将Web应用程序部署到生产环境时才能使用该<Context>
参数吗?
如果没有,是否可以根据环境(本地或生产)动态修改它们,或者指定两者而不会发生冲突?目前,Eclipse不允许我同时指定它们。
答案 0 :(得分:1)
您是否尝试将“local.myapp.com”域映射到您的本地 IP?
您可以使用相同的 sessionCookieDomain=".myapp.com"
配置。
我刚刚试过 sessionCookieDomain="myapp.com"
似乎有效。
答案 1 :(得分:0)
这种配置特定于部署应用程序的服务器,因此不应在 META-INF/context.xml
中分发。更合适的位置是:
$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default
,其中[enginename]
通常是Catalina
,而[hostname]
是<Host>
的配置名称,$CATALINA_BASE/conf/context.xml
,如果这涉及所有 <Host>
元素。