Analitza Proxy-Authorization en un proxy directe de Go
Analitzeu Proxy-Authorization per separat en un proxy directe de Go mentre es preserva la capçalera Authorization de l'origen.
En un proxy directe de Go, r.BasicAuth llegeix la capçalera Authorization, que pertany a l'inici de sessió del lloc web de destinació. Les credencials del propi proxy arriben a Proxy-Authorization.
Un adaptador petit pot reutilitzar l'analitzador públic sense modificar la petició original:
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()
}
Aquest fragment utilitza net/http. Retorna els valors analitzats i un indicador d'èxit de l'anàlisi; no autentica el compte. Passeu el resultat al validador de credencials previst pel proxy.
Si l'autenticació falla, retorneu 407 amb un repte Proxy-Authenticate adequat i atureu el processament d'aquesta petició. Autentiqueu abans d'obrir una connexió a la destinació o d'acceptar un túnel CONNECT.
Després d'acceptar les credencials, consumeixi la capçalera Proxy-Authorization del propi proxy abans del reenviament habitual. Preserveu el camp Authorization original per a l'origen. Un proxy pare superior, si n'hi ha, necessita la seva pròpia disposició deliberada d'autenticació en lloc de rebre accidentalment aquesta credencial del client.