From 867d5b55e1cbd9348b472042f4ce7c88a2063ab7 Mon Sep 17 00:00:00 2001 From: Ajay Date: Sat, 20 Dec 2025 21:48:41 +0530 Subject: [PATCH] Fix: Preserve custom CookiePolicy in Session.prepare_request When merging cookies in Session.prepare_request, custom cookie policies set on the session's cookie jar were being lost. This fix preserves the policy by copying it to the new RequestsCookieJar during merging. Fixes #7122 --- src/requests/sessions.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/requests/sessions.py b/src/requests/sessions.py index 731550de88..c7d06f7103 100644 --- a/src/requests/sessions.py +++ b/src/requests/sessions.py @@ -471,9 +471,20 @@ def prepare_request(self, request): cookies = cookiejar_from_dict(cookies) # Merge with session cookies - merged_cookies = merge_cookies( - merge_cookies(RequestsCookieJar(), self.cookies), cookies - ) + # Preserve the cookie policy from the session's cookie jar + # Fixes issue where custom policies were lost during request preparation + if isinstance(self.cookies, RequestsCookieJar): + # Create a new jar with the same policy as the session's jar + jar = RequestsCookieJar() + jar.set_policy(self.cookies.get_policy()) + merged_cookies = merge_cookies( + merge_cookies(jar, self.cookies), cookies + ) + else: + # Fall back to original behavior for non-RequestsCookieJar instances + merged_cookies = merge_cookies( + merge_cookies(RequestsCookieJar(), self.cookies), cookies + ) # Set environment's basic authentication if not explicitly set. auth = request.auth