[问题]:我试图通过简单地将安全cookie的属性设置为TRUE来保护会话cookie。但是,应用程序无法在此更改后创建会话。 有没有人有同样的问题?
这可能是我失踪的微不足道的事情,但不幸的是我无法解决这个问题。 任何帮助或建议都非常感谢:
这是weblogic.xml设置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ....="http://www.bea.com/ns/weblogic/90 http://www.oracle.com/technology/weblogic/90/weblogic-web-app">
<session-descriptor>
*<cookie-name>JSESSIONIDCA</cookie-name>
<cookie-path>/../...</cookie-path>
..
<cookie-secure>true</cookie-secure>
</session-descriptor>
...
<keep-generated>true</keep-generated>
<page-check-seconds>-1</page-check-seconds>
<print-nulls>false</print-nulls>
<verbose>true</verbose>
...
<container-descriptor><servlet-reload-check>-1</servlet-reload-check> </container-descriptor>
我正在使用:Http Session session = request。获取Session();
应用程序使用Web逻辑10.3和Spring MVC。 感谢
答案 0 :(得分:2)
使Cookie安全,意味着浏览器只会通过https发送回来。因此,当在浏览器中设置cookie时,所有http请求将在第一次请求后失败。如果您使用混合的http / https访问您的网络服务器,那么您不应该使JSESSIONID cookie安全。如果选中了Auth Cookie Enabled标志,这是weblogic控制台中的默认标志。
将AuthCookieEnabled设置为true会导致WebLogic Server实例在通过HTTPS连接进行身份验证时向浏览器发送新的安全cookie _WL_AUTHCOOKIE_JSESSIONID。设置安全cookie后,只有在从浏览器发送cookie时,才允许会话访问其他安全性受限的HTTPS资源。
因此,WebLogic Server使用两个cookie:JSESSIONID cookie和_WL_AUTHCOOKIE_JSESSIONID cookie。默认情况下,JSESSIONID cookie永远不会安全,但_WL_AUTHCOOKIE_JSESSIONID cookie始终是安全的。只有在使用加密通信通道时才会发送安全cookie。假设标准HTTPS登录(HTTPS是加密的HTTP连接),您的浏览器将获得两个cookie。
有关详细信息,请参阅http://docs.oracle.com/cd/E23943_01/web.1111/e13711/thin_client.htm#autoId4