aio-libs / aio-libs/aiohttp

Warn the user when Authorization header is dropped from the request

未关闭
#9,694 10 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement reproducer: missing
主要语言
Python
星标
16.5k
派生
2.4k
平均合并
17 小时 22 分钟
30 天内合并 PR
212

描述

### 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
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

- [X] I agree to follow the aio-libs Code of Conduct

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。