我们正在构建一个Web应用程序来为多个区域网站TLD提供服务。此外,Web应用程序还支持数千个动态子域。例子包括:
www.example.com
www.example.co.uk
www.example.com.ar
fred123.example.co.uk <== Thousands of this form
fred123.p.example.us <== Thousands of this form
虽然我们可以理解不同的域TLD会导致新会话出现问题,上面的后两个示例也会出现新的会话实例。例如,如果用户:
3次点击==&gt;&gt; 3节!!!!
问题似乎是由于GlassFish v3自动使JSESSIONID的域成为主机请求的FQDN。
所需要的是主机名部分至少从域值中删除,以获得域值,如:
.example.com
.example.co.uk
.example.com.ar
.example.co.uk <== Thousands of this form
.p.example.us <== Thousands of this form
有谁知道如何实现这一目标。我发现了以下Q&amp; A但是在我们的案例中,子域TLD并不都匹配:
An issue dealing with JSP Session
Ergo静态配置sun-web.xml或使用Servlet 3.0解决方案的解决方案似乎没有帮助。另外,创建过滤器响应包装器也不起作用,因为JSESSIONID cookie在应用程序服务器的较低级别中分配,并且不会暴露给Web App以进行拦截。
我认为我唯一的两个选择是:
a)修补将JSESSIONID cookie域值设置为FQDN的GlassFish v3代码,以便发生一些剥离或
b)在Sun Web Server 7.0反向代理层中执行某些操作,我们必须重新编写set-cookie标头中返回的JSESSIONID cookie域值但是我无法找到有关如何执行此操作的示例< / p>
任何人都可以帮忙解决此问题吗?任何线索/帮助将非常感谢!
答案 0 :(得分:0)
使用Apache和mod_headers重写cookie? Best way for allowing subdomain session cookies using Tomcat