我正在寻找类似于此的解决方案: httpOnly Session Cookie + Servlet 3.0 (e.g. Glassfish v3)
我想转换HTTP标头:http-only和Secure off,以便使用https进行身份验证可以传输到http请求。
然而, 1与其他帖子有关。我没有使用servlet 3.0。我可能愿意尝试使用servlet 3.0,如果有关于如何将intellij项目从serverl 2.5迁移到3.0的正确文档。如何使用它似乎并不明显。将我的maven pom更改为javax.servlet 3.0然后将我的web.xml版本编辑为3.0不起作用。在3.0版本上给出了一个方面错误。叹息。
domain.xml中
<web-container>
<session-config>
<session-manager>
<manager-properties></manager-properties>
<store-properties></store-properties>
</session-manager>
<session-properties>
<property name="cookieSecure" value="false"></property>
<property name="cookieHttpOnly" value="false"></property>
</session-properties>
</session-config>
</web-container>
...
<configs>
<config name="server-config">
<http-service sso-enabled="true">
<access-log></access-log>
<virtual-server id="server" sso-cookie-secure="false" sso-cookie-http-only="false" network-listeners="http-listener-1,http-listener-2"></virtual-server>
<virtual-server id="__asadmin" sso-cookie-http-only="false" network-listeners="admin-listener"></virtual-server>
</http-service>
默认-web.xml中
<session-config>
<session-timeout>60</session-timeout>
<cookie-config>
<http-only>false</http-only>
<secure>false</secure>
</cookie-config>
<cookie-properties>
<property name="cookieSecure" value="false" />
<property name="cookieHttpOnly" value="false" />
</cookie-properties>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
答案 0 :(得分:4)
好吧我感觉有点愚蠢,但我以前从未写过特定的容器,以确保我的代码可以跨容器移植。但是,经过一些研究,我发现你可以放一个看起来像这样的WEB-INF / glassfish-web.xml文件来控制glassfish下每个WAR文件的安全cookie设置。
http://blogs.oracle.com/jluehe/entry/ow_to_configure_the_security
<?xml version="1.0" encoding="UTF-8"?>
<glassfish-web-app>
<session-config>
<cookie-properties>
<b><property name="cookieSecure" value="[true|false|dynamic]"/></b>
</cookie-properties>
</session-config>
</glassfish-web-app>