У Go forward proxy-ју r.BasicAuth чита заглавље Authorization, које припада пријави на одредишну веб локацију. Акредитиви самог proxy-ја долазе у Proxy-Authorization.

Мали адаптер може поново да користи јавни парсер без промене изворног захтева:

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

Овај фрагмент користи net/http. Враћа рашчлањене вредности и ознаку успешног рашчлањивања; не проверава аутентичност налога. Проследите резултат намењеном валидатору акредитива proxy-ја.

Ако провера аутентичности не успе, вратите 407 са одговарајућим Proxy-Authenticate изазовом и зауставите обраду тог захтева. Проверите аутентичност пре отварања везе према одредишту или прихватања CONNECT тунела.

Након прихватања акредитива, потрошите сопствено Proxy-Authorization заглавље proxy-ја пре уобичајеног прослеђивања. Сачувајте изворно Authorization поље за извор. Надређени proxy, ако постоји, потребно му је сопствено намерно решење провере аутентичности, уместо да случајно прими ове клијентске акредитиве.

Повезани чланци