仅在部署到生产环境时,才在META-INF / context.xml中使用sessionCookieDomain

时间:2017-10-21 17:17:15

标签: tomcat java-ee spring-security session-cookies context.xml

我在AWS上安装了Spring Security的企业Java应用程序,配置为使用myapp.comwww.myapp.com。问题是,这两个会话都维持一个单独的会话(即使你已经登录另一个会话需要登录),我想解决这个问题。

answer提及您可以通过将sessionCookieDomain中的META-INF/context.xml设置为根域来实现此目的 -

<Context sessionCookiePath="/" sessionCookieDomain=".myapp.com" />

但是,这不允许我在本地运行Web应用程序。我必须删除或替换它 -

<Context sessionCookiePath="/myapp" sessionCookieDomain="localhost" />

我没有必要指定它在本地运行它。那么,只有在将Web应用程序部署到生产环境时才能使用该<Context>参数吗?

如果没有,是否可以根据环境(本地或生产)动态修改它们,或者指定两者而不会发生冲突?目前,Eclipse不允许我同时指定它们。

2 个答案:

答案 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> 元素。

另见: