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.

Əlaqəli məqalələr