Analizi Proxy-Authorization en Go-antaŭa prokurilo
Analizu Proxy-Authorization aparte en Go-antaŭa prokurilo, konservante la Authorization-kapon de la origino.
En Go-antaŭa prokurilo, r.BasicAuth legas la kapon Authorization, kiu apartenas al la ensaluto de la celloka retejo. La propraj akreditaĵoj de la prokurilo alvenas en Proxy-Authorization.
Malgranda adaptilo povas reuzi la publikan analizilon sen ŝanĝi la originan peton:
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()
}
Ĉi tiu fragmento uzas net/http. Ĝi redonas la analizitajn valorojn kaj sukcesan flagon de la analizo; ĝi ne aŭtentikigas la konton. Transdonu la rezulton al la celita validigilo de akreditaĵoj de la prokurilo.
Se la aŭtentikigo malsukcesas, resendu 407 kun taŭga Proxy-Authenticate-defio kaj ĉesigu la prilaboradon de tiu peto. Aŭtentikigu antaŭ ol malfermi konekton al la celloko aŭ akcepti CONNECT-tunelon.
Post akcepto de la akreditaĵoj, konsumu la propran Proxy-Authorization-kapon de la prokurilo antaŭ la ordinara plusendo. Konservu la originan Authorization-kampon por la origino. Supra gepatra prokurilo, se ĝi ekzistas, bezonas sian propran intencitan aŭtentikigan aranĝon anstataŭ hazarde ricevi ĉi tiun klientan akreditaĵon.