Katika Go forward proxy, r.BasicAuth husoma kichwa cha Authorization, ambacho ni cha kuingia kwenye tovuti lengwa. Vitambulisho vya proxy yenyewe huja katika Proxy-Authorization.

Adapta ndogo inaweza kutumia tena parser ya umma bila kubadilisha ombi la awali:

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

Kipande hiki kinatumia net/http. Hukurudisha thamani zilizochanganuliwa na bendera ya mafanikio ya uchanganuzi; hakithibitishi akaunti. Pitisha matokeo kwa kithibitishaji cha vitambulisho kinachokusudiwa na proxy.

Ikiwa uthibitishaji unashindikana, rudisha 407 pamoja na changamoto inayofaa ya Proxy-Authenticate na usitishe uchakataji wa ombi hilo. Thibitisha kabla ya kufungua muunganisho kwenda lengwa au kukubali handaki la CONNECT.

Baada ya kukubali vitambulisho, tumia kichwa cha Proxy-Authorization cha proxy yenyewe kabla ya usambazaji wa kawaida. Hifadhi sehemu ya awali ya Authorization kwa asili. Proxy mzazi wa juu, ikiwa ipo, inahitaji mpangilio wake wa makusudi wa uthibitishaji badala ya kupokea kwa bahati mbaya kitambulisho hiki cha mteja.

Makala zinazohusiana