Greina Proxy-Authorization í Go framsendingarproxy
Greindu Proxy-Authorization sérstaklega í Go framsendingarproxy og varðveittu Authorization-haus upprunans.
Í Go framsendingarproxy les r.BasicAuth Authorization-hausinn, sem tilheyrir innskráningu áfangavefsins. Skilríki proxysins sjálfs koma í Proxy-Authorization.
Lítill millistykki getur endurnýtt opinbera þáttarann án þess að breyta upprunalegu beiðninni:
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()
}
Þetta brot notar net/http. Það skilar þáttuðu gildunum og merki um árangur þáttunar; það auðkennir ekki reikninginn. Sendu niðurstöðuna til fyrirhugaðs skilríkavillugreinis proxysins.
Ef auðkenning mistekst, skilaðu 407 með viðeigandi Proxy-Authenticate áskorun og stöðvaðu vinnslu þeirrar beiðni. Auðkenndu áður en þú opnar tengingu við áfangann eða tekur við CONNECT-göngum.
Eftir að skilríkin eru samþykkt skaltu eyða eigin Proxy-Authorization-haus proxysins áður en venjuleg framsending fer fram. Varðveittu upprunalega Authorization-reitinn fyrir upprunann. Yfirproxy ofar, ef til staðar, þarf eigið viljandi auðkenningaruppsetningu í stað þess að fá þessi skilríki biðlarans fyrir slysni.