Go forward proxy တွင် r.BasicAuth သည် Authorization header ကို ဖတ်သည်။ ၎င်းသည် သွားမည့် ဝဘ်ဆိုက်၏ လော့ဂ်အင်နှင့် သက်ဆိုင်သည်။ proxy ၏ ကိုယ်ပိုင် အထောက်အထားများသည် Proxy-Authorization တွင် လာသည်။

အဒက်တာငယ်တစ်ခုသည် မူရင်း တောင်းဆိုချက်ကို မပြောင်းလဲဘဲ အများသူငှာ parser ကို ပြန်လည် အသုံးပြုနိုင်သည်။

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 က ရည်ရွယ်ထားသော အထောက်အထား စစ်ဆေးသူထံ ပေးပို့ပါ။

အတည်ပြုမှု မအောင်မြင်ပါက သင့်လျော်သော Proxy-Authenticate စိန်ခေါ်မှုနှင့်အတူ 407 ကို ပြန်ပို့ပြီး ထို တောင်းဆိုချက်ကို ရပ်ဆိုင်းပါ။ သွားမည့်နေရာသို့ ချိတ်ဆက်မှု မဖွင့်မီ သို့မဟုတ် CONNECT tunnel ကို မလက်ခံမီ အတည်ပြုပါ။

အထောက်အထားများကို လက်ခံပြီးနောက် ပုံမှန် ပေးပို့မှု မပြုမီ proxy ၏ ကိုယ်ပိုင် Proxy-Authorization header ကို အသုံးပြုပါ။ မူရင်းအတွက် Authorization အကွက်ကို ထိန်းသိမ်းပါ။ အထက်တွင် မိခင် proxy ရှိပါက ဤ client အထောက်အထားကို မတော်တဆ ရရှိမည့်အစား ၎င်း၏ ကိုယ်ပိုင် တမင်စီစဉ်ထားသော အတည်ပြုမှု အစီအစဉ် လိုအပ်သည်။

ဆက်စပ်ဆောင်းပါးများ