|
From af4824cb0b2c36a0eba4bc1590eb0737302e992e Mon Sep 17 00:00:00 2001
|
|
From: Yawning Angel <yawning@schwanenlied.me>
|
|
Date: Wed, 10 Jan 2018 15:11:44 +0000
|
|
Subject: Bug 24793: Send the correct authorization HTTP header for basic auth.
|
|
|
|
Apparently I didn't test the "connect via HTTP(s)" proxy with
|
|
authentication at all when I added that functionality, so it has been
|
|
broken for years.
|
|
|
|
This should fix it now.
|
|
---
|
|
obfs4proxy/proxy_http.go | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/obfs4proxy/proxy_http.go b/obfs4proxy/proxy_http.go
|
|
index 6f11790..a5c2100 100644
|
|
--- a/obfs4proxy/proxy_http.go
|
|
+++ b/obfs4proxy/proxy_http.go
|
|
@@ -29,6 +29,7 @@ package main
|
|
|
|
import (
|
|
"bufio"
|
|
+ "encoding/base64"
|
|
"fmt"
|
|
"net"
|
|
"net/http"
|
|
@@ -90,7 +91,9 @@ func (s *httpProxy) Dial(network, addr string) (net.Conn, error) {
|
|
}
|
|
req.Close = false
|
|
if s.haveAuth {
|
|
- req.SetBasicAuth(s.username, s.password)
|
|
+ // SetBasicAuth doesn't quite do what is appropriate, because
|
|
+ // the correct header is `Proxy-Authorization`.
|
|
+ req.Header.Set("Proxy-Authorization", base64.StdEncoding.EncodeToString([]byte(s.username + ":" + s.password)))
|
|
}
|
|
req.Header.Set("User-Agent", "")
|
|
|
|
--
|
|
cgit v1.1
|
|
|