Go irəli proxy-də Proxy-Authorization başlığını təhlil etmək
Mənbənin Authorization başlığını qoruyaraq Go irəli proxy-də Proxy-Authorization-ı ayrıca təhlil edin.
Go irəli proxy-də r.BasicAuth Authorization başlığını oxuyur; bu, hədəf veb-saytın girişinə aiddir. Proxy-nin öz etimad məlumatları isə Proxy-Authorization başlığında gəlir.
Kiçik adapter orijinal sorğunu dəyişmədən ümumi parseri yenidən istifadə edə bilər:
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()
}
Bu fraqment net/http-dən istifadə edir. Təhlil olunmuş dəyərləri və təhlilin uğur bayrağını qaytarır; hesabı doğrulamır. Nəticəni proxy-nin nəzərdə tutduğu etimad yoxlayıcısına ötürün.
Doğrulama uğursuz olarsa, uyğun Proxy-Authenticate çağırışı ilə 407 qaytarın və həmin sorğunun emalını dayandırın. Hədəf bağlantısını açmadan və ya CONNECT tunelini qəbul etməzdən əvvəl doğrulayın.
Etimad məlumatlarını qəbul etdikdən sonra adi yönləndirmədən əvvəl proxy-nin öz Proxy-Authorization başlığını sərf edin. Orijinal Authorization sahəsini mənbə üçün saxlayın. Yuxarı ana proxy varsa, bu müştəri etimad məlumatını təsadüfən almadan özünün qəsdən qurulmuş doğrulama tənzimləməsinə ehtiyacı var.