Raščlanjivanje Proxy-Authorization u Go forward proxyju
Raščlanite Proxy-Authorization odvojeno u Go forward proxyju uz očuvanje Authorization zaglavlja izvora.
U Go forward proxyju r.BasicAuth čita zaglavlje Authorization, koje pripada prijavi na odredišnu web lokaciju. Vjerodajnice samog proxyja dolaze u Proxy-Authorization.
Mali adapter može ponovo koristiti javni parser bez promjene izvornog zahtjeva:
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()
}
Ovaj fragment koristi net/http. Vraća raščlanjene vrijednosti i oznaku uspješnog raščlanjivanja; ne provjerava autentičnost računa. Proslijedite rezultat namijenjenom validatoru vjerodajnica proxyja.
Ako provjera autentičnosti ne uspije, vratite 407 s odgovarajućim Proxy-Authenticate izazovom i zaustavite obradu tog zahtjeva. Provjerite autentičnost prije otvaranja veze prema odredištu ili prihvatanja CONNECT tunela.
Nakon prihvatanja vjerodajnica, potrošite vlastito Proxy-Authorization zaglavlje proxyja prije uobičajenog prosljeđivanja. Sačuvajte izvorno Authorization polje za izvor. Ako postoji nadređeni proxy, potrebno mu je vlastito namjerno rješenje provjere autentičnosti, umjesto da slučajno primi ove klijentske vjerodajnice.