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