Menghuraikan Proxy-Authorization dalam forward proxy Go
Huraikan Proxy-Authorization secara berasingan dalam forward proxy Go sambil mengekalkan header Authorization asal.
Dalam forward proxy Go, r.BasicAuth membaca header Authorization, yang tergolong dalam log masuk laman web destinasi. Kelayakan proxy itu sendiri tiba dalam Proxy-Authorization.
Penyesuai kecil boleh menggunakan semula penghurai awam tanpa mengubah permintaan asal:
func proxyBasicAuth(r *http.Request) (string, string, bool) {
headers := make(http.Header)
headers.Set("Authorization", r.Header.Get("Proxy-Authorization"))
return (&http.Request{Header: headers}).BasicAuth()
}
Serpihan ini menggunakan net/http. Ia mengembalikan nilai yang dihuraikan dan bendera kejayaan penghuraian; ia tidak mengesahkan akaun. Serahkan hasilnya kepada pengesah kelayakan yang dimaksudkan oleh proxy.
Jika pengesahan gagal, kembalikan 407 dengan cabaran Proxy-Authenticate yang sesuai dan hentikan pemprosesan permintaan itu. Sahkan sebelum membuka sambungan ke destinasi atau menerima terowong CONNECT.
Selepas menerima kelayakan, gunakan header Proxy-Authorization proxy itu sendiri sebelum penghantaran biasa. Kekalkan medan Authorization asal untuk asal. Proxy induk huluan, jika ada, memerlukan susunan pengesahan tersendiri yang disengajakan dan bukannya menerima kelayakan klien ini secara tidak sengaja.