从weblogic.xml为HTTPS设置安全cookie

时间:2019-01-23 13:32:36

标签: spring cookies weblogic setcookie jsessionid

Cookie已定义为weblogic.xml

<session-descriptor>
    <cookie-name>A_JSESSIONID</cookie-name>
</session-descriptor>

当我们使用HTTPS连接时,A_JSESSIONID cookie没有安全状态。 打p安全扫描发现“没有设置安全标志的SSL cookie”问题。

我不能使用

<cookie-secure>true</cookie-secure>

因为我们的应用程序也可以被HTTP使用。

我试图在“过滤器”中设置安全状态

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {

        try {

 HttpServletRequest request = (HttpServletRequest) servletRequest;
            Cookie[] cookies = request.getCookies();

            if(cookies!=null && servletRequest.isSecure())
            {               
                for (Cookie cookie : cookies) {
 logger.debug("set Secure for cookie: " + cookie.getName());
                    cookie.setSecure(true);
                }
            }
...

记录器显示A_JSESSIONID cookie。但这是行不通的。它仍然不安全。

我还找到了一条信息(https://docs.oracle.com/cd/E23943_01/web.1111/e13711/thin_client.htm#SCPRG139):

  

WebLogic Server使用两个cookie:JSESSIONID cookie和   _WL_AUTHCOOKIE_JSESSIONID cookie。默认情况下,JSESSIONID cookie永远不安全,但是_WL_AUTHCOOKIE_JSESSIONID cookie始终是安全的   安全。仅当加密通信时才发送安全cookie   通道正在使用中。假设使用标准的HTTPS登录名(HTTPS是   加密的HTTP连接),您的浏览器会同时获得两个cookie。

AuthCookieEnabled在WebLogic控制台中设置为true,但是在我的cookie列表中看不到_WL_AUTHCOOKIE_A_JSESSIONID。只是A_JSESSIONID,没有安全状态。

如何动态设置weblogic cookie的安全性? 或者如何找到_WL_AUTHCOOKIE_A_JSESSIONID?

谢谢。

1 个答案:

答案 0 :(得分:-1)

这是我到目前为止对这个主题的阅读-

  1. 确保管理控制台,域>配置> Web 应用程序>启用身份验证Cookie已选中(默认)
  2. 列表项启用课程的SSL
  3. 列表项

这样的代码

Result_0_2.csv

现在,当您在http中访问应用程序时,您不会看到此cookie,而通过https访问时,您将看到此cookie。

希望这会有所帮助

相关问题