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 फिल्ड जोगाउनुहोस्। माथिल्लो अभिभावक प्रोक्सी भए यसले यो क्लाइन्ट प्रमाण संयोगवश नपाएर आफ्नै सुविचारित प्रमाणीकरण व्यवस्था आवश्यक छ।

सम्बन्धित लेखहरू