F'forward proxy Go, r.BasicAuth jaqra l-header Authorization, li jappartjeni għall-login tas-sit web destinazzjoni. Il-kredenzjali tal-proxy stess jaslu fil-Proxy-Authorization.

Adattatur żgħir jista' jerġa' juża l-parser pubbliku mingħajr ma jbiddel it-talba oriġinali:

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

Dan il-framment juża net/http. Jirritorna l-valuri tanalizzati u bandiera ta' suċċess tat-tanalizzar; ma jawtentikax il-kont. Għaddi r-riżultat lill-validatur tal-kredenzjali maħsub tal-proxy.

Jekk l-awtentikazzjoni tfalli, irritorna 407 b'sfida Proxy-Authenticate xierqa u waqqaf l-ipproċessar ta' dik it-talba. Awtentika qabel ma tiftaħ konnessjoni mad-destinazzjoni jew taċċetta tunnel CONNECT.

Wara li taċċetta l-kredenzjali, ikkonsma l-header Proxy-Authorization tal-proxy stess qabel it-trasferiment tas-soltu. Ippreserva l-qasam Authorization oriġinali għall-oriġini. Proxy ġenitur upstream, jekk ikun hemm, jeħtieġ arranġament ta' awtentikazzjoni tiegħu stess b'għaqal minflok ma jirċievi din il-kredenzjali tal-klijent b'inċident.

Artikli relatati