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.

Súvisiace články