Mewn dirprwy ymlaen Go mae r.BasicAuth yn darllen y pennawd Authorization, sy'n perthyn i fewngofnodi'r wefan gyrchfan. Daw tystlythyrau'r dirprwy ei hun yn Proxy-Authorization.

Gall addasydd bach ailddefnyddio'r parsar cyhoeddus heb newid y cais gwreiddiol:

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()
}

Mae'r darn hwn yn defnyddio net/http. Mae'n dychwelyd y gwerthoedd a ddosrannwyd a baner llwyddiant y dosrannu; nid yw'n dilysu'r cyfrif. Trosglwyddwch y canlyniad i ddilysydd tystlythyrau arfaethedig y dirprwy.

Os bydd dilysu yn methu, dychwelwch 407 gyda her Proxy-Authenticate briodol a stopiwch brosesu'r cais hwnnw. Dilyswch cyn agor cysylltiad i'r gyrchfan neu cyn derbyn twnnel CONNECT.

Ar ôl derbyn tystlythyrau, defnyddiwch bennawd Proxy-Authorization y dirprwy ei hun cyn anfon ymlaen arferol. Cadwch y maes Authorization gwreiddiol ar gyfer y tarddiad. Os oes dirprwy rhiant uwchyn, mae angen ei drefniant dilysu bwriadol ei hun yn hytrach na chael y dystlythyr cleient hwn ar ddamwain.

Erthyglau cysylltiedig