Dosrannu Proxy-Authorization mewn dirprwy ymlaen Go
Dosrannwch Proxy-Authorization ar wahân mewn dirprwy ymlaen Go wrth gadw pennawd Authorization y tarddiad.
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.