Skip to content

fix: send proxy-authorization even with empty password#2868

Merged
seanmonstar merged 2 commits intoseanmonstar:masterfrom
barjin:master
Dec 1, 2025
Merged

fix: send proxy-authorization even with empty password#2868
seanmonstar merged 2 commits intoseanmonstar:masterfrom
barjin:master

Conversation

@barjin
Copy link
Contributor

@barjin barjin commented Nov 28, 2025

Reqwest should try authenticating with the proxy on URLs with only username or only password. E.g. curl works like this, see example below:

# ---------------------vvvv----- only username, no password
$ curl -vvvv -x http://user@127.0.0.1:44199 http://httpbin.org/get
*   Trying 127.0.0.1:44199...
* Connected to (nil) (127.0.0.1) port 44199 (#0)
#-----------------------------------vvvv---- curl understands the credentials correctly
* Proxy auth using Basic with user 'user'
> GET http://httpbin.org/get HTTP/1.1
> Host: httpbin.org
#----------------------vvvvvvvvvvvvvv base64-encoded "user"
> Proxy-Authorization: Basic dXNlcjo=
> User-Agent: curl/7.81.0
> Accept: */*
> Proxy-Connection: Keep-Alive

Prerequisite for apify/impit#324

Copy link
Owner

@seanmonstar seanmonstar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@seanmonstar seanmonstar merged commit c0c06b7 into seanmonstar:master Dec 1, 2025
37 checks passed
kodiakhq bot pushed a commit to pdylanross/fatigue that referenced this pull request Dec 9, 2025
Bumps reqwest from 0.12.24 to 0.12.25.

Release notes
Sourced from reqwest's releases.

v0.12.25
Highlights

Add Error::is_upgrade() to determine if the error was from an HTTP upgrade.
Fix sending Proxy-Authorization if only username is configured.
Fix sending Proxy-Authorization to HTTPS proxies when the target is HTTP.
Refactor internal decompression handling to use tower-http.

What's Changed

tests: fix wasm timeout test with uncached response by @​seanmonstar in seanmonstar/reqwest#2853
docs: document connection pooling behavior by @​vinzmyko in seanmonstar/reqwest#2851
docs: document WASM client by @​vinzmyko in seanmonstar/reqwest#2859
chore: minor improvement for docs by @​black5box in seanmonstar/reqwest#2862
fix: send proxy-authorization even with empty password by @​barjin in seanmonstar/reqwest#2868
feat(error): add is_upgrade method to detect protocol upgrade errors by @​0x676e67 in seanmonstar/reqwest#2822
Use decompression from tower-http by @​ducaale in seanmonstar/reqwest#2840
fix(proxy): forward Proxy-Authorization header to HTTPS proxies for HTTP targets by @​0x676e67 in seanmonstar/reqwest#2872
v0.12.25 by @​seanmonstar in seanmonstar/reqwest#2880

New Contributors

@​vinzmyko made their first contribution in seanmonstar/reqwest#2851
@​black5box made their first contribution in seanmonstar/reqwest#2862
@​barjin made their first contribution in seanmonstar/reqwest#2868

Full Changelog: seanmonstar/reqwest@v0.12.24...v0.12.25



Changelog
Sourced from reqwest's changelog.

v0.12.25

Add Error::is_upgrade() to determine if the error was from an HTTP upgrade.
Fix sending Proxy-Authorization if only username is configured.
Fix sending Proxy-Authorization to HTTPS proxies when the target is HTTP.
Refactor internal decompression handling to use tower-http.




Commits

f156a9f v0.12.25
fc1ff4f fix(proxy): forward Proxy-Authorization header to HTTPS proxies for HTTP targ...
b7c3712 Use decompression from tower-http (#2840)
74e6f84 feat(error): add is_upgrade method to detect protocol upgrade errors (#2822)
c0c06b7 fix: send proxy-authorization even with empty password (#2868)
a2aa5a3 chore: minor improvement for docs (#2862)
9c4999d docs: document WASM client (#2859)
a97e195 docs: document connection pooling behavior (#2851)
e3093ed tests: fix wasm timeout test with uncached response (#2853)
See full diff in compare view




Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants