A Go forward proxyban az r.BasicAuth az Authorization fejlécet olvassa, amely a célwebhely bejelentkezéséhez tartozik. Magának a proxynak a hitelesítő adatai a Proxy-Authorization fejlécben érkeznek.

Egy kis adapter újrahasznosíthatja a nyilvános elemzőt az eredeti kérés módosítása nélkül:

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()
}

Ez a részlet a net/http csomagot használja. Visszaadja az elemzett értékeket és az elemzés sikerességét jelző kapcsolót; nem hitelesíti a fiókot. Adja át az eredményt a proxy szánt hitelesítőadat-ellenőrzőjének.

Ha a hitelesítés sikertelen, adjon vissza 407-et megfelelő Proxy-Authenticate kihívással, és állítsa le a kérés feldolgozását. Hitelesítsen, mielőtt kapcsolatot nyit a célhoz, vagy CONNECT alagutat fogad el.

A hitelesítő adatok elfogadása után a szokásos továbbítás előtt használja fel a proxy saját Proxy-Authorization fejlécét. Őrizze meg az eredeti Authorization mezőt az eredeti kiszolgáló számára. Egy felsőbb szülő proxy, ha van, saját szándékos hitelesítési elrendezést igényel, ahelyett hogy véletlenül megkapná ezt az ügyfél-hitelesítő adatot.

Kapcsolódó cikkek