Go forward proxy တွင် Proxy-Authorization ကို ခွဲခြမ်းစိတ်ဖြာခြင်း
မူရင်း Authorization header ကို ထိန်းသိမ်းထားပြီး Go forward proxy တွင် Proxy-Authorization ကို သီးခြား ခွဲခြမ်းစိတ်ဖြာပါ။
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 အထောက်အထားကို မတော်တဆ ရရှိမည့်အစား ၎င်း၏ ကိုယ်ပိုင် တမင်စီစဉ်ထားသော အတည်ပြုမှု အစီအစဉ် လိုအပ်သည်။