【发布时间】:2011-02-09 12:07:26
【问题描述】:
使用 Jetty 7.0.2,我无法设置自定义会话 cookie 路径。
我在同一台服务器上托管多个站点,使用 apache 将请求代理到适当的上下文。 (将 http 替换为 htp,因为 stackoverflow 认为我的多个链接可能是垃圾邮件)
<VirtualHost *:80>
ServerName context.domain.com
ProxyRequests On
ProxyPreserveHost Off
<Proxy *:80>
Order deny,allow
Allow from 127.0.0.1
</Proxy>
ProxyPass / htp://localhost:8080/context/
ProxyPassReverse / htp://localhost:8080/context/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Jetty 在同一台服务器的 8080 端口上运行,我的上下文可用 @/context
用户访问应用程序@htp://context.domain.com 但jetty 正在设置会话cookie 的路径@/context。这可以防止浏览器访问 cookie,因为没有使用上下文的实际路径。我需要覆盖 Jetty 的默认设置来设置上下文的 cookie,并将路径设置在根目录 ( / )。
在我的 Jetty 的 webdefault.xml 中,我有以下内容,它正在部分工作:
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionCookie</param-name>
<param-value>CustomCookieName</param-value>
</context-param>
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionPath</param-name>
<param-value>/</param-value>
</context-param>
cookie 已使用自定义名称正确设置,但未设置 SessionPath。无论我将值设置为什么......它都拒绝在除 /context 之外的任何路径设置 cookie。
这让我发疯了,所以任何帮助都将不胜感激。
【问题讨论】: