Spracovanie Proxy-Authorization v doprednom proxy v Go
Spracujte Proxy-Authorization oddelene v doprednom proxy v Go a zachovajte hlavičku Authorization pôvodného servera.
V doprednom proxy v Go číta r.BasicAuth hlavičku Authorization, ktorá patrí prihláseniu cieľového webu. Vlastné prihlasovacie údaje proxy prichádzajú v Proxy-Authorization.
Malý adaptér môže znova použiť verejný parser bez zmeny pôvodnej požiadavky:
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žíva net/http. Vracia spracované hodnoty a príznak úspešného spracovania; neoveruje účet. Výsledok odovzdajte zamýšľanému validátoru prihlasovacích údajov proxy.
Ak overenie zlyhá, vráťte 407 s vhodnou výzvou Proxy-Authenticate a zastavte spracovanie tejto požiadavky. Overte skôr, než otvoríte spojenie k cieľu alebo prijmete tunel CONNECT.
Po prijatí prihlasovacích údajov spotrebujte vlastnú hlavičku Proxy-Authorization proxy pred bežným preposielaním. Zachovajte pôvodné pole Authorization pre pôvodný server. Ak existuje nadradené proxy, potrebuje vlastné zámerné usporiadanie overovania, namiesto toho, aby tieto klientske údaje dostalo omylom.