From 1786fffae60a8a2b7ba31d8fc9514aefce17e39c Mon Sep 17 00:00:00 2001
From: Noah Moss <32746338+noahmoss@users.noreply.github.com>
Date: Wed, 3 Aug 2022 19:05:32 -0400
Subject: [PATCH] Set `CookieSpecs/STANDARD` on HttpClient for Snowplow
 (#24579)

* set CookieSpecs/STANDARD on Apache HttpClient for Snowplow

* add a comment in the code pointing to the PR

* set cookie spec via RequestConfig instead
---
 src/metabase/analytics/snowplow.clj | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/metabase/analytics/snowplow.clj b/src/metabase/analytics/snowplow.clj
index 1b0a7571697..320f5a22edb 100644
--- a/src/metabase/analytics/snowplow.clj
+++ b/src/metabase/analytics/snowplow.clj
@@ -16,6 +16,7 @@
            [com.snowplowanalytics.snowplow.tracker.events Unstructured Unstructured$Builder]
            [com.snowplowanalytics.snowplow.tracker.http ApacheHttpClientAdapter ApacheHttpClientAdapter$Builder]
            com.snowplowanalytics.snowplow.tracker.payload.SelfDescribingJson
+           [org.apache.http.client.config CookieSpecs RequestConfig]
            org.apache.http.impl.client.HttpClients
            org.apache.http.impl.conn.PoolingHttpClientConnectionManager))
 
@@ -80,8 +81,14 @@
 (def ^:private emitter
   "Returns an instance of a Snowplow emitter"
   (let [emitter* (delay
-                   (let [client (-> (HttpClients/custom)
+                   (let [request-config (-> (RequestConfig/custom)
+                                            ;; Set cookie spec to `STANDARD` to avoid warnings about an invalid cookie
+                                            ;; header in request response (PR #24579)
+                                            (.setCookieSpec CookieSpecs/STANDARD)
+                                            (.build))
+                         client (-> (HttpClients/custom)
                                     (.setConnectionManager (PoolingHttpClientConnectionManager.))
+                                    (.setDefaultRequestConfig request-config)
                                     (.build))
                          builder (-> (ApacheHttpClientAdapter/builder)
                                      (.httpClient client)
-- 
GitLab