我将会话参数存储在我使用SessionAware接口操作的Struts2会话映射中。我的应用程序位于/ MyApp路径中。
在Apache服务器上设置struts2应用程序后,使用反向代理重定向,使URL http://www.appdomain.com/ 指向 localhost:8080 / MyApp上的本地tomcat ,Struts2会话处理不再起作用。我希望会话cookie存储在http://localhost:8080/MyApp而不是http://www.appdomain.com/的Struts2上下文中......
Struts2配置中是否有解决方案?或者以某种方式以编程方式更改会话cookie?在interwebs或官方文档中找不到任何关于此的信息。请帮助,我已经投入生产,登录不起作用; - )
答案 0 :(得分:2)
这已经过时了,但我发现了它,并希望降低我的5美分。
您可以使用的一个修补程序是编辑web.xml,并在session-config集中编辑类似:
<session-config>
<session-timeout>10</session-timeout>
<cookie-config>
<name>MYAPPSESSIONID</name>
<path>/</path>
</cookie-config>
</session-config>
此更改
希望这可以帮助别人。
答案 1 :(得分:1)
我刚用脏黑客解决了这个问题:我将会话ID传递给了JSP并使用javascript来设置所需的JSESSIONID cookie客户端。
function createCookie(name,value,days){ if(days){ var date = new Date(); date.setTime(date.getTime()+(天* 24 * 60 * 60 * 1000)); var expires =“; expires =”+ date.toGMTString(); } else var expires =“”; document.cookie = name +“=”+ value + expires +“; path = /”; }
$(document).ready(function(){ 的createCookie( “JSESSIONID”, “”,3); });
从此页面获得JS代码:http://www.quirksmode.org/js/cookies.html
谢谢,问题解决了!
最诚挚的问候, 添
答案 2 :(得分:0)
将其放入httpd.conf
#all cookies from /MyApp are proxied to "/"
ProxyPassReverseCookiePath /MyApp /
http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreversecookiepath