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 फील्ड जपून ठेवा. वरचा पालक प्रॉक्सी असल्यास, हे क्लायंट ओळखपत्र अपघाताने मिळण्याऐवजी त्याला स्वतःची सुविचारित पडताळणी व्यवस्था आवश्यक आहे.

संबंधित लेख