在Weblogic中保护会话ID Cookie会破坏会话创建

时间:2014-04-25 19:33:14

标签: java spring session cookies

[问题]:我试图通过简单地将安全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。 感谢

1 个答案:

答案 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