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-ի սեփական Proxy-Authorization վերնագիրը։ Պահպանեք բնօրինակ Authorization դաշտը աղբյուրի համար։ Վերին մայր proxy-ն, եթե կա, կարիք ունի իր սեփական դիտավորյալ նույնականացման կարգավորման, այլ ոչ թե պատահաբար ստանա այս հաճախորդի հավատարմագրերը։

Առնչվող հոդվածներ