Session Jetty 7不允许我自定义会话cookie路径

Session Jetty 7不允许我自定义会话cookie路径,session,cookies,jetty,Session,Cookies,Jetty,使用Jetty 7.0.2,我无法设置自定义会话cookie路径 我在同一台服务器上托管多个站点,使用apache将请求代理到适当的上下文。(将http替换为htp,因为stackoverflow认为我的多个链接可能是垃圾邮件) ServerName context.domain.com 代理请求 代理主机关闭 命令拒绝,允许 允许从127.0.0.1开始 ProxyPass/htp://localhost:8080/context/ ProxyPassReverse/htp://localh

使用Jetty 7.0.2,我无法设置自定义会话cookie路径

我在同一台服务器上托管多个站点,使用apache将请求代理到适当的上下文。(将http替换为htp,因为stackoverflow认为我的多个链接可能是垃圾邮件)


ServerName context.domain.com
代理请求
代理主机关闭
命令拒绝,允许
允许从127.0.0.1开始
ProxyPass/htp://localhost:8080/context/
ProxyPassReverse/htp://localhost:8080/context/
命令允许,拒绝
通融
Jetty在端口8080的同一台服务器上运行,我的上下文可用@/context

用户访问应用程序@htp://context.domain.com 但是jetty正在为会话cookie@/上下文设置路径。这会阻止浏览器访问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>

org.eclipse.jetty.servlet.sessionokie
自定义CookieName
org.eclipse.jetty.servlet.SessionPath
/
cookie已正确设置为自定义名称,但未设置会话路径。无论我将值设置为什么。。。它拒绝在除/context之外的任何路径上设置cookie


这让我抓狂,因此非常感谢您的帮助。

我对Jetty不太熟悉,但听起来好像客户机正在访问生成cookie的/Context。我会仔细检查代码,确保您的cookie没有在站点的/上下文中生成。用户是否连接到域根并不重要,cookie不会查看用户连接的位置,而是查看cookie的生成位置

如果cookie是从/Context生成的,那么用户甚至可以访问它htp://foobar.domain.com 它看起来仍然像来自/上下文,因为它是从那里生成的。唯一的解决方法是在根级别生成cookie,而不是在/Context区域的页面上生成cookie。这是为了防止cookie怪兽从不属于它的站点窃取cookie信息(如果你在foo.yahoo.com上托管你的站点并创建一个cookie,这将保留一个你不拥有的不同站点(bar.yahoo.com)查看cookie。这是出于设计。

听起来像是您点击了,导致Jetty始终使用会话cookie的上下文路径

<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>