为什么我不能在客户端的GWT中获取JSESSIONID cookie?

时间:2012-01-03 14:49:38

标签: java session gwt cookies

我在index.jsp页面中有我的GWT代码,当我查看页面信息(安全性/ cookie)时,我看到分配给'subdomain.mysite.com'的JSESSIONID cookie。

在我的客户端代码中,我这样做:

Window.alert("cookies=" + Cookies.getCookieNames().toString);

我看到两个分配给'mysite.com'的cookie,但我没有看到JSESSIONID。该页面的当前网址是“subdomain.mysite.com” - 它不应该给我饼干吗? 当我刷新或在点击事件上显示cookie时,我仍然看不到JSESSIONID cookie。

为什么我不能在客户端获得它?

2 个答案:

答案 0 :(得分:7)

您的应用程序服务器是否配置为在JSESSIONID cookie上设置HTTPOnly标志?如果是这样,客户端代码将无法看到它

请参阅https://www.owasp.org/index.php/HttpOnly

设置HTTPOnly标志通常是一种很好的安全措施 - 您能否阐明为什么要在客户端代码中访问JSESSIONID cookie?

答案 1 :(得分:0)

如果在cookie上设置HTTPOnly标志,那确实会发生,正如Chi所解释的那样。如果您的唯一目的是在JavaScript上下文中获取当前会话ID,那么您可以让JSP / EL将其打印为好像它是JS变量:

<script>var jsessionid = '${pageContext.session.id}';</script>