Go forward proxy میں r.BasicAuth Authorization ہیڈر پڑھتا ہے، جو منزل ویب سائٹ کے لاگ اِن کا ہوتا ہے۔ خود proxy کی اسناد 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 کے مطلوبہ اسناد کی تصدیق کنندہ کو دیں۔

اگر تصدیق ناکام ہو تو مناسب Proxy-Authenticate چیلنج کے ساتھ 407 واپس بھیجیں اور اُس درخواست کی کارروائی روک دیں۔ منزل سے کنکشن کھولنے یا CONNECT ٹنل قبول کرنے سے پہلے تصدیق کریں۔

اسناد قبول کرنے کے بعد، معمول کی ترسیل سے پہلے proxy کا اپنا Proxy-Authorization ہیڈر استعمال کریں۔ اصل Authorization فیلڈ origin کے لیے محفوظ رکھیں۔ اگر اوپر والد proxy ہو تو اُسے یہ کلائنٹ اسناد اتفاقاً ملنے کے بجائے اپنی دانستہ تصدیق کی ترتیب درکار ہے۔

متعلقہ مضامین