Go ফরওয়ার্ড প্রক্সিতে Proxy-Authorization বিশ্লেষণ
মূল Authorization হেডার সংরক্ষণ করে Go ফরওয়ার্ড প্রক্সিতে Proxy-Authorization আলাদাভাবে বিশ্লেষণ করুন।
Go ফরওয়ার্ড প্রক্সিতে r.BasicAuth Authorization হেডার পড়ে, যা গন্তব্য ওয়েবসাইটের লগইনের অন্তর্গত। প্রক্সির নিজস্ব শংসাপত্র 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-Authenticate চ্যালেঞ্জসহ 407 ফেরত দিন এবং সেই অনুরোধ প্রক্রিয়া করা বন্ধ করুন। গন্তব্য সংযোগ খোলার বা CONNECT টানেল গ্রহণের আগে প্রমাণীকরণ করুন।
শংসাপত্র গ্রহণের পর সাধারণ ফরওয়ার্ডিংয়ের আগে প্রক্সির নিজস্ব Proxy-Authorization হেডার খরচ করুন। মূলের জন্য আসল Authorization ফিল্ড সংরক্ষণ করুন। উপরের প্যারেন্ট প্রক্সি থাকলে এই ক্লায়েন্ট শংসাপত্র আকস্মিকভাবে না পেয়ে নিজের সুনির্দিষ্ট প্রমাণীকরণ ব্যবস্থা প্রয়োজন।