V posredniškem proxy Go r.BasicAuth prebere glavo Authorization, ki pripada prijavi na ciljnem spletnem mestu. Lastne poverilnice proxyja prispejo v Proxy-Authorization.

Majhen adapter lahko znova uporabi javni razčlenjevalnik brez spreminjanja izvirne zahteve:

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

Ta del uporablja net/http. Vrne razčlenjene vrednosti in zastavico uspešnega razčlenjevanja; ne overja računa. Rezultat predajte predvidenemu preverjevalniku poverilnic proxyja.

Če preverjanje ne uspe, vrnite 407 s primernim izzivom Proxy-Authenticate in ustavite obdelavo te zahteve. Overite, preden odprete povezavo do cilja ali sprejmete tunel CONNECT.

Po sprejemu poverilnic porabite lastno glavo Proxy-Authorization proxyja pred običajnim posredovanjem. Ohranite izvirno polje Authorization za izvor. Nadrejeni starševski proxy, če obstaja, potrebuje svojo lastno premišljeno ureditev preverjanja, namesto da bi te odjemalčeve poverilnice prejel po nesreči.

Sorodni članki