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