Go forward proxy da Proxy-Authorization ni tahlil qilish
Go forward proxy da Proxy-Authorization ni alohida tahlil qiling va manbaning Authorization sarlavhasini saqlang.
Go forward proxy da r.BasicAuth Authorization sarlavhasini o'qiydi; u maqsadli veb-saytga kirishga tegishli. Proxyning o'z hisob ma'lumotlari Proxy-Authorization ichida keladi.
Kichik adapter asl so'rovni o'zgartirmasdan umumiy parserni qayta ishlatishi mumkin:
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 parcha net/http dan foydalanadi. U tahlil qilingan qiymatlarni va tahlil muvaffaqiyati belgisini qaytaradi; hisobni autentifikatsiya qilmaydi. Natijani proxy nazarda tutgan hisob ma'lumotlari tekshiruvchisiga bering.
Agar autentifikatsiya muvaffaqiyatsiz bo'lsa, mos Proxy-Authenticate chaqiruvi bilan 407 qaytaring va o'sha so'rovni qayta ishlashni to'xtating. Maqsadga ulanishni ochishdan yoki CONNECT tunnelini qabul qilishdan oldin autentifikatsiya qiling.
Hisob ma'lumotlarini qabul qilgandan so'ng, oddiy uzatishdan oldin proxyning o'z Proxy-Authorization sarlavhasini ishlating. Asl Authorization maydonini manba uchun saqlang. Agar yuqorida ota proxy bo'lsa, u ushbu mijoz hisob ma'lumotlarini tasodifan olish o'rniga o'zining ataylab tuzilgan autentifikatsiya tartibiga muhtoj.