2010-04-18 66 views
2

使用Jetty 7.0.2,我无法设置自定义会话cookie路径。Jetty 7不允许我自定义会话cookie路径

我在同一台服务器上使用apache托管多个站点,以将请求代理到正确的上下文。 (取代HTTP作为HTP如计算器认为我的多条链路可能是垃圾)

<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上,我的上下文可用@ /背景

的用户访问应用程序@ 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。无论我为什么设置价值......它都拒绝在任何路径但/上下文中设置cookie。

这一直让我疯狂,所以任何帮助将不胜感激。

回答

1

听起来像是你已经打this bug,导致码头总是使用会话cookie的上下文路径。

1

我不喜欢Jetty,但它听起来像在某些时候客户端访问/上下文这是生成cookie的地方。我会仔细检查代码并确保您的Cookie不会在您网站的/ Context中生成。您的用户连接到域根目录并不重要,cookie不会查看用户连接的位置,它会查看Cookie的生成位置。

如果您的cookie是从/ Context生成的,您的用户甚至可以访问htp://foobar.domain.com,它仍然看起来像是来自/ Context,因为它是从那里生成的。唯一的解决方法是在根目录级别生成cookie,而不是在/ Context区域的页面生成。这是为了防止cookie怪物从它不属于的网站窃取cookie信息(如果您在foo.yahoo.com上的网站上托管并创建cookie,这将保留您不属于的其他网站(bar.yahoo .COM)从看你的饼干。这是由设计。

相关问题