Yn in Go forward-proxy lêst r.BasicAuth de Authorization-header, dy't by de oanmelding fan de websitesite fan bestimming heart. De eigen ynloggegevens fan de proxy komme yn Proxy-Authorization.

In lytse adapter kin de iepenbiere parser opnij brûke sûnder it oarspronklike fersyk te feroarjen:

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

Dit fragmint brûkt net/http. It jout de parseele wearden en in flag foar slagge parsen werom; it autentisearret it akkount net. Jou it resultaat troch oan de bedoelde falidearder foar ynloggegevens fan de proxy.

As de autentikaasje mislearret, stjoer dan 407 mei in passende Proxy-Authenticate-útdaging werom en stop de ferwurking fan dat fersyk. Autentisearje foardat jo in ferbining nei de bestimming iepenje of in CONNECT-tunnel akseptearje.

Nei it akseptearjen fan de ynloggegevens, ferbrûk de eigen Proxy-Authorization-header fan de proxy foar gewoane trochstjoering. Behâld it oarspronklike Authorization-fjild foar de oarsprong. In boppesteande âlderproxy, as dy bestiet, hat syn eigen bewuste autentikaasjeregeling nedich ynstee fan dizze kliïntgegevens by ûngelok te ûntfangen.

Relatearre artikelen