我在处理会议时感到不便。
我有这个:
www.mydomain.com
sub1.mydomain.com
sub2.mydomain.com
sub3.mydomain.com
当我登录“ www”时,然后更改为“ sub2”(例如)
找出它创建另一个会话:S
这是为什么??
我需要为www,sub1,sub2,sub3等使用相同的会话。
“ mydomain.com”。
我能做什么??是那样吗,我得耍个招?或者是
有什么我想要的“合法”解决方案?
最佳答案
JSESSIONID cookie由容器发出,并且cookie域和路径始终是Web应用程序域和上下文根的cookie和域。
似乎您有多个应用程序,在这种情况下,由于域或上下文根的更改,即使应用程序位于同一容器中,一个应用程序发出的JSESSIONID也不会被另一应用程序识别。
有多种解决方法:
如果您不处理高价值的应用程序,并且可以保证在服务器上不部署任何“恶意”应用程序,则可以将服务器配置为在应用程序之间共享会话。可以将Weblogic Server配置为执行此操作。
使用中央身份验证和会话管理提供程序-SSO。
使用TLS / SSL-当通过SSL进行通信时,大多数服务器不会发出JSESSIONID cookie,而是使用SSL本身来存储状态。您在这里会有不同的结果。
更新:
Glassfish v3允许您设置会话cookie的域。这是通过session-config element in sun-web.xml完成的。我不确定在v2或更低版本的Glassfish中是否可用。
关于java - 有关JSP session 的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1303193/