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.

Saistītie raksti