Go forward proxy'de Proxy-Authorization ayrıştırma
Go forward proxy'de Proxy-Authorization'ı ayrı ayrıştırın ve kaynağın Authorization başlığını koruyun.
Go forward proxy'de r.BasicAuth, hedef web sitesinin oturum açmasına ait olan Authorization başlığını okur. Proxy'nin kendi kimlik bilgileri ise Proxy-Authorization içinde gelir.
Küçük bir bağdaştırıcı, özgün isteği değiştirmeden ortak ayrıştırıcıyı yeniden kullanabilir:
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 parça net/http kullanır. Ayrıştırılan değerleri ve ayrıştırma başarı bayrağını döndürür; hesabın kimliğini doğrulamaz. Sonucu proxy'nin amaçladığı kimlik bilgisi doğrulayıcısına iletin.
Kimlik doğrulama başarısız olursa, uygun bir Proxy-Authenticate meydan okumasıyla 407 döndürün ve o isteğin işlenmesini durdurun. Hedefe bağlantı açmadan veya bir CONNECT tünelini kabul etmeden önce kimlik doğrulaması yapın.
Kimlik bilgilerini kabul ettikten sonra, olağan yönlendirmeden önce proxy'nin kendi Proxy-Authorization başlığını tüketin. Özgün Authorization alanını kaynak için koruyun. Yukarı akışta bir üst proxy varsa, bu istemci kimlik bilgilerini yanlışlıkla almak yerine kendi bilinçli kimlik doğrulama düzenine ihtiyaç duyar.