Proxy-Authorization parsēšana Go pāradresācijas starpniekserverī
Parsējiet Proxy-Authorization atsevišķi Go pāradresācijas starpniekserverī, saglabājot izcelsmes Authorization galveni.
Go pāradresācijas starpniekserverī r.BasicAuth nolasa Authorization galveni, kas pieder mērķa vietnes pieteikšanās informācijai. Paša starpniekservera akreditācijas dati pienāk Proxy-Authorization.
Neliels adapteris var atkārtoti izmantot publisko parsētāju, nemainot sākotnējo pieprasījumu:
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()
}
Šis fragments izmanto net/http. Tas atgriež parsētās vērtības un parsēšanas veiksmes karodziņu; tas neautentificē kontu. Nododiet rezultātu starpniekservera paredzētajam akreditācijas datu validētājam.
Ja autentifikācija neizdodas, atgrieziet 407 ar atbilstošu Proxy-Authenticate izaicinājumu un pārtrauciet šī pieprasījuma apstrādi. Autentificējieties pirms savienojuma atvēršanas ar mērķi vai CONNECT tuneļa pieņemšanas.
Pēc akreditācijas datu pieņemšanas pirms parastās pārsūtīšanas izmantojiet paša starpniekservera Proxy-Authorization galveni. Saglabājiet sākotnējo Authorization lauku izcelsmei. Augšupējam vecākstarpniekam, ja tāds ir, nepieciešama sava apzināta autentifikācijas kārtība, nevis nejauša šo klienta akreditācijas datu saņemšana.