Proxy-Authorization analizė Go perdavimo proxy
Analizuokite Proxy-Authorization atskirai Go perdavimo proxy, išsaugodami šaltinio Authorization antraštę.
Go perdavimo proxy r.BasicAuth nuskaito Authorization antraštę, kuri priklauso tikslinės svetainės prisijungimui. Paties proxy kredencialai atkeliauja Proxy-Authorization antraštėje.
Nedidelis adapteris gali pakartotinai naudoti viešą analizatorių nekeisdamas pradinės užklausos:
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()
}
Šis fragmentas naudoja net/http. Jis grąžina išanalizuotas reikšmes ir analizės sėkmės vėliavą; jis nenustato paskyros tapatybės. Perduokite rezultatą numatytam proxy kredencialų tikrintojui.
Jei autentifikacija nepavyksta, grąžinkite 407 su tinkamu Proxy-Authenticate iššūkiu ir sustabdykite tos užklausos apdorojimą. Autentifikuokite prieš atidarydami ryšį su tikslu ar priimdami CONNECT tunelį.
Priėmę kredencialus, prieš įprastą perdavimą sunaudokite paties proxy Proxy-Authorization antraštę. Išsaugokite pradinį Authorization lauką šaltiniui. Aukštesnis pirminis proxy, jei yra, turi turėti savo sąmoningą autentifikacijos tvarką, o ne atsitiktinai gauti šiuos kliento kredencialus.