Go ફોરવર્ડ પ્રોક્સીમાં Proxy-Authorization નું વિશ્લેષણ
મૂળ Authorization હેડર જાળવીને Go ફોરવર્ડ પ્રોક્સીમાં Proxy-Authorization ને અલગથી વિશ્લેષણ કરો.
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 ક્ષેત્ર જાળવો. ઉપરનું પિતૃ પ્રોક્સી હોય તો આ ક્લાયન્ટ ઓળખ આકસ્મિક રીતે ન મળે તે માટે તેને પોતાની સુવિચારી ઓળખ-ચકાસણી ગોઠવણની જરૂર છે.