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 ਖੇਤਰ ਸੰਭਾਲੋ। ਜੇ ਉੱਪਰਲਾ ਮਾਪੇ ਪ੍ਰਾਕਸੀ ਹੈ, ਤਾਂ ਇਸ ਕਲਾਇੰਟ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੂੰ ਸੰਯੋਗਵਸ਼ ਨਾ ਮਿਲਣ ਦੇਣ ਲਈ ਉਸ ਨੂੰ ਆਪਣੀ ਸੁਚੇਤ ਪ੍ਰਮਾਣੀਕਰਨ ਵਿਵਸਥਾ ਦੀ ਲੋੜ ਹੈ।