【问题标题】:How to disable Session cookie in Apache HttpAsyncClientBuilder如何在 Apache HttpAsyncClientBuilder 中禁用会话 cookie
【发布时间】:2023-03-26 11:54:01
【问题描述】:

如果请求中有 JSESSIONID cookie,我正在与无法获取用户身份验证 cookie 的服务交谈,并且我无法修改此服务。 它还在每个响应中返回此会话 cookie,因此我的第一个请求有效(除了用户的 cookie 之外没有其他 cookie),但下一个请求将始终失败。

我的 restTemplate 配置使用自定义请求工厂,该工厂使用来自 Apache 的 HttpAsyncClientBuilder 的 AsyncClient 扩展 Spring 的 HttpComponentsAsyncClientHttpRequestFactory

有没有办法将其配置为始终忽略会话 cookie?

提前致谢!

【问题讨论】:

    标签: apache-httpcomponents


    【解决方案1】:

    如果能找到一个只包含配置的解决方案会很好,但我找不到,所以我最终扩展了 BasicCookieStore:

    public class DefaultCookieStore extends BasicCookieStore {
    
        private static String SESSION_COOKIE_NAME = "JSESSIONID";
    
        @Override
        public void addCookie(Cookie cookie) {
            if (!SESSION_COOKIE_NAME.equals(cookie.getName())) {
                super.addCookie(cookie);
            }
        }
    }
    

    然后使用 setDefaultCookieStore 方法将其添加到我的 HttpAsyncClientBuilder 和 HttpClientBuilder 中。

    可能不是最好的,但效果很好。

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 1970-01-01
      • 2012-12-02
      • 2011-07-23
      • 2011-04-29
      • 2012-07-08
      • 2010-10-11
      • 1970-01-01
      • 2010-11-26
      相关资源
      最近更新 更多