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.

Rilataj artikoloj