我遇到了一个 jsession id 问题。我正在使用 Tomcat 7、Spring 框架 3.1.1、Spring Security 的安全性。
我们的应用程序有一个登录页面,其 url 类似于 : defaultSubdomain.theSite.com/login.html
。我们的一些用户有自己的子域,所以他们的登录页面 url 是 : subdomainForUser.theSite.com/login.html
。
问题是,如果其中一个使用默认登录 url:
- 他将登录,将在服务器上创建一个 HttpSession,并
defaultSubdomain.theSite.com
在客户端上创建一个 JSESSIONID cookie,然后 - 我们的服务器使浏览器重定向到用户子域的欢迎页面,并使浏览器使用 javascript 重新创建 JSESSIONID cookie。
在过滤器中:
//if client is on the wrong subdomain
HttpServletResponse.sendRedirect(url);
return;
但在那之后,客户端仍然需要重新登录。有什么方法可以实现我尝试做的事情(使用编码方法而不是配置 tomcat)?
我做了一些研究,我们可以使用
<Context sessionCookieDomain=".theSite.com" sessionCookiePath="/">
但这意味着有一种用于开发的配置,一种用于测试的配置,一种用于生产的配置,这是不可接受的。
谢谢!