Zpracování Proxy-Authorization v dopředném proxy v Go
Zpracujte Proxy-Authorization odděleně v dopředném proxy v Go a přitom zachovejte hlavičku Authorization původního serveru.
V dopředném proxy v Go čte r.BasicAuth hlavičku Authorization, která patří přihlášení cílového webu. Vlastní přihlašovací údaje proxy přicházejí v Proxy-Authorization.
Malý adaptér může znovu použít veřejný parser bez změny původního požadavku:
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()
}
Tento fragment používá net/http. Vrací zpracované hodnoty a příznak úspěšného zpracování; neověřuje účet. Výsledek předejte zamýšlenému validátoru přihlašovacích údajů proxy.
Pokud ověření selže, vraťte 407 s vhodnou výzvou Proxy-Authenticate a ukončete zpracování tohoto požadavku. Ověřte dříve, než otevřete spojení k cíli nebo přijmete tunel CONNECT.
Po přijetí přihlašovacích údajů spotřebujte vlastní hlavičku Proxy-Authorization proxy před běžným předáváním. Zachovejte původní pole Authorization pro původní server. Pokud existuje nadřazené proxy, potřebuje vlastní záměrné uspořádání ověřování, místo aby tyto klientské údaje dostalo omylem.