Proxy-Authorization an engem Go-Forward-Proxy parsen
Parse Proxy-Authorization getrennt an engem Go-Forward-Proxy, a behält den Authorization-Header vum Urspronk.
An engem Go-Forward-Proxy liest r.BasicAuth den Authorization-Header, deen zum Login vun der Zielsäit gehéiert. D'Zougangsdaten vum Proxy selwer kommen am Proxy-Authorization.
E klengen Adapter kann dee ëffentleche Parser erëm benotzen, ouni d'Originalufro ze änneren:
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()
}
Dëst Fragment benotzt net/http. Et gëtt déi geparste Wäerter an e Flag fir eng erfollegräich Analyse zréck; et authentifizéiert de Kont net. Gitt d'Resultat un de virgesi Validator fir d'Zougangsdaten vum Proxy.
Wann d'Authentifikatioun fehlschléit, schéckt 407 mat enger passender Proxy-Authenticate-Herausfuerderung zréck a stoppt d'Veraarbechtung vun där Ufro. Authentifizéiert iech, ier Dir eng Verbindung zum Zil opmaacht oder en CONNECT-Tunnel akzeptéiert.
Nodeems d'Zougangsdaten akzeptéiert goufen, verbraucht den eegene Proxy-Authorization-Header vum Proxy virum normale Weiderleeden. Behält dat ursprénglecht Authorization-Feld fir den Urspronk. En iwwergeuerdnete Mammeproxy, wann et een gëtt, brauch seng eege bewosst Authentifikatiounsreegelung, amplaz dës Client-Zougangsdaten zoufälleg ze kréien.