在Servlet 3.0投诉应用程序服务器中,我可以通过在web.xml中添加以下内容来为会话cookie(JSESSIONID)设置HttpOnly和安全标志:
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
但是,我正在处理的应用程序将部署在Websphere 7中,这是Servlet 2.5的投诉,如果我将上述内容添加到web.xml中,它就无法启动
Websphere 7配置中是否还有其他声明性方式或设置可以打开会话cookie的HttpOnly和安全标志?
如果没有,那么以编程方式完成该方法的最佳方法是什么?
答案 0 :(得分:8)
我认为在WebSphere 7中您可能需要深入研究管理控制台。与以往一样,WebSphere文档似乎很差,但似乎建议设置com.ibm.ws.security.addHttpOnlyAttributeToCookies属性:
通过设置WebSphere Application Server属性,可以启用Secure标志和HTTPOnly标志:
com.ibm.ws.security.addHttpOnlyAttributeToCookies
。
我找到this,我希望这适用于WAS7。你可以试试(我的系统目前只有WAS 8):
JSESSIONID Cookie:
安全标记:
可以在WebSphere Application Server中设置Secure标志 通过选择AppServer-&gt; [服务器名称] - &gt; Web来管理界面 容器设置 - &gt;会话管理。选中复选框 “将Cookie限制为HTTPS会话”。
HTTPOnly标志:
目前无法在此Cookie上设置HTTPOnly属性。这个 在IBM站点上注册为APAR PK98436。这个APAR的修复程序 目前包含在Fix Packs 6.1.0.31和7.0.0.9中, 目前还没有。有了这个APAR,HTTPOnly 可以通过属性名称在JSESSIONID cookie上设置flag: com.ibm.ws.webcontainer.httpOnlyCookies。请参阅以下内容 有关启用WebContainer自定义属性的说明的技术说明。
WAS 7帮助网站上记录了com.ibm.ws.webcontainer.httpOnlyCookies属性。
答案 1 :(得分:3)
将Secure标志设置为JSESSIONID cookie(对于WebSphere 7.x和8.x也是如此):
将WebSphere 8.x中的HttpOnly标志设置为JSESSIONID cookie
将WebSphere 7.x中的HttpOnly标志设置为JSESSIONID cookie
答案 2 :(得分:0)
在WebSphere 7中,您可以在服务器&gt;下的管理控制台中找到它。 WebSphere应用程序服务器&gt; [服务器名称] &gt; 会话管理(在&#34;容器设置&#34;下)&gt; 启用Cookie &gt; 将Cookie限制为HTTPS会话。