Go forward proxy дахь 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 талбарыг хадгална уу. Дээд эцэг прокси байвал энэ клиентийн итгэмжлэлийг санамсаргүйгээр авахын оронд өөрийн зориудын баталгаажуулалтын зохион байгуулалт хэрэгтэй.

Холбоотой нийтлэлүүд