Parse Proxy-Authorization i ein Go-forward-proxy
Parse Proxy-Authorization separat i ein Go-forward-proxy medan Authorization-headeren til opphavet blir bevart.
I ein Go-forward-proxy les r.BasicAuth headeren Authorization, som høyrer til innlogginga på nettstaden du skal til. Sjølve legitimasjonen til proxyen kjem i Proxy-Authorization.
Ein liten adapter kan bruke den offentlege parsaren om att utan å endre den opphavlege førespurnaden:
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()
}
Denne kodebiten brukar net/http. Han returnerer dei parsede verdiane og eit flagg for vellykka parsing; han autentiserer ikkje kontoen. Send resultatet vidare til den tiltenkte legitimasjonsvalidatoren til proxyen.
Viss autentiseringa mislukkast, returner 407 med ei passande Proxy-Authenticate-utfordring og stopp handsaminga av den førespurnaden. Autentiser før du opnar ei tilkoping til destinasjonen eller godtek ein CONNECT-tunnel.
Etter å ha godteke legitimasjonen, bruk opp den eigen Proxy-Authorization-headeren til proxyen før vanleg videresending. Behald det opphavlege Authorization-feltet for opphavet. Ein overordna proxy ovanfor, om han finst, treng si eiga medvitne autentiseringsordning i staden for å motta denne klientlegitimasjonen ved eit uhell.