Skip to content

Warn the user when Authorization header is dropped from the request #9694

Open
@mananapr

Description

@mananapr

Is your feature request related to a problem?

As per the documentation -

Authorization header will be removed if you get redirected to a different host or protocol.

However this happens silently and can lead to confusion for the programmer.

Describe the solution you'd like

The library should throw a warning letting the user know that the header has been dropped.
I went through the code and it seems the change below should be sufficient -

diff --git a/aiohttp/client.py b/aiohttp/client.py
index dc1ab674..8154b11f 100644
--- a/aiohttp/client.py
+++ b/aiohttp/client.py
@@ -756,7 +756,13 @@ class ClientSession:
                             and url.origin() != redirect_origin
                         ):
                             auth = None
-                            headers.pop(hdrs.AUTHORIZATION, None)
+                            auth_header = headers.pop(hdrs.AUTHORIZATION, None)
+                            if auth_header:
+                                warnings.warn(
+                                    message = "Authorization header has been removed from the request",
+                                    category = RuntimeWarning,
+                                    source = self,
+                                )
 
                         url = parsed_redirect_url

Describe alternatives you've considered

Related component

Client

Additional context

No response

Code of Conduct

  • I agree to follow the aio-libs Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementreproducer: missingThis PR or issue lacks code, which reproduce the problem described or clearly understandable STR

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions