The .netrc spec [1] defines credentials based on "machine name", so remove specified ports
from URL before looking for a match.
[1] https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html
Fixes #37130
Change-Id: Iab993afba26c927454d6166111ad1e1a53dbce43
Reviewed-on: https://go-review.googlesource.com/c/go/+/218418
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
// AddCredentials fills in the user's credentials for req, if any.
// The return value reports whether any matching credentials were found.
func AddCredentials(req *http.Request) (added bool) {
+ host := req.URL.Hostname()
+
// TODO(golang.org/issue/26232): Support arbitrary user-provided credentials.
netrcOnce.Do(readNetrc)
for _, l := range netrc {
- if l.machine == req.URL.Host {
+ if l.machine == host {
req.SetBasicAuth(l.login, l.password)
return true
}