Proxy-Authorization'i töötlemine Go edasisaatvas puhverserveris
Töötle Proxy-Authorization'i Go edasisaatvas puhverserveris eraldi, säilitades päritoluserveri Authorization-päise.
Go edasisaatvas puhverserveris loeb r.BasicAuth päist Authorization, mis kuulub sihtveebisaidi sisselogimise juurde. Puhverserveri enda volitused saabuvad päises Proxy-Authorization.
Väike adapter saab avalikku parserit uuesti kasutada ilma algset päringut muutmata:
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()
}
See katkend kasutab teeki net/http. See tagastab parsitud väärtused ja parsimise õnnestumise lipu; see ei autendi kontot. Edasta tulemus puhverserveri ettenähtud volituste valideerijale.
Kui autentimine ebaõnnestub, tagasta 407 sobiva Proxy-Authenticate väljakutsega ja lõpeta selle päringu töötlemine. Autendi enne sihtkohaga ühenduse avamist või CONNECT-tunneli vastuvõtmist.
Pärast volituste vastuvõtmist tarbi puhverserveri enda Proxy-Authorization-päist enne tavalist edasisaatmist. Säilita päritoluserveri jaoks algne Authorization-väli. Ülemine vanempuhverserver vajab oma teadlikku autentimiskorraldust, mitte ei tohiks seda kliendi volitust kogemata saada.