【发布时间】:2014-08-24 20:13:22
【问题描述】:
网络上有很多关于这个主题的信息,但我发现其中很多是矛盾的。所以我问的是空白 - 我到底如何才能将 HttpOnly 属性添加到 JSESSIONID 会话 cookie?
我已尝试将此添加到我的 webapp 的 web.xml:
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
<session-config>
...我已经尝试将其添加到 conf/Catalina/localhost 中的 context.xml 文件中:
<Context useHttpOnly="true">
而且没有骰子。顺便说一句,我将上述内容(useHttpOnly="true")添加到同一个 Tomcat 上的 Spring MVC 应用程序中,它就像一个魅力——当我检查我的响应头时,我看到:
Set-Cookie:JSESSIONID=57675D7792083CB3B906DAA47A2B5C94; Path=/my-app; HttpOnly
但是对于我的 Struts 2 应用程序,这不会发生。我读过 Struts 并没有开箱即用地做到这一点,你必须让每个广告的每个动作都实现 CookieProvider,实现 getCookies() 方法,然后确保这些动作被连接到使用 CookieInterceptor ...
...其他帖子说您必须在 Servlet 过滤器中手动执行此操作...
...但同时在其他(更新的)帖子中,它说您不必做任何事情,这是容器的责任,如果您使用的是 Servlet api 3.0,并添加以上行到您的 context.xml,它应该可以工作。它与 Spring MVC 配合良好的事实告诉我,这可能是真的。
如果我以编程方式做某事,谁能明确告诉我?非常感谢。
【问题讨论】:
-
你能澄清一下你以编程方式做了什么吗?
标签: java http struts2 session-cookies