从weblogic.xml为HTTPS设置安全cookie

问题描述 投票:0回答:1

Cookie被定义到weblogic.xml中

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

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

我不能用

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

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

我试图在Filter中设置安全状态

    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。

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

我怎样才能动态设置weblogic cookie安全?或者我如何找到_WL_AUTHCOOKIE_A_JSESSIONID?

谢谢。

spring cookies weblogic setcookie jsessionid
1个回答
-1
投票

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

  1. 确保选中管理控制台,域>配置> Web应用程序>已启用Auth Cookie(默认)
  2. 列表项启用SSL ofcourse
  3. 项目清单

像这样的代码

   workCookie = new Cookie(cookieName,"startValue");
   workCookie.setPath("/");
   workCookie.setMaxAge(10 * 24 * 3600);
   workCookie.setSecure(true);
   response.addCookie(workCookie);

现在,当你在http中访问你的应用程序时,你看不到这个cookie,当你通过https访问时,你会看到这个cookie。

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.