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 ఫీల్డ్ను కాపాడండి. పైన తల్లిదండ్రుల ప్రాక్సీ ఉంటే, ఈ క్లయింట్ ఆధారం యాదృచ్ఛికంగా రాకుండా దానికి సొంతంగా ఉద్దేశపూర్వక ధృవీకరణ ఏర్పాటు అవసరం.