Analizar Proxy-Authorization nun proxy directo de Go
Analice Proxy-Authorization por separado nun proxy directo de Go mentres se conserva a cabeceira Authorization da orixe.
Nun proxy directo de Go, r.BasicAuth le a cabeceira Authorization, que pertence ao inicio de sesión do sitio web de destino. As credenciais do propio proxy chegan en Proxy-Authorization.
Un adaptador pequeno pode reutilizar o analizador público sen modificar a solicitude orixinal:
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()
}
Este fragmento usa net/http. Devolve os valores analizados e un indicador de análise correcta; non autentica a conta. Pase o resultado ao validador de credenciais previsto polo proxy.
Se a autenticación falla, devolva 407 cun desafío Proxy-Authenticate axeitado e deteña o procesamento desa solicitude. Autentique antes de abrir unha conexión co destino ou de aceptar un túnel CONNECT.
Tras aceptar as credenciais, consuma a cabeceira Proxy-Authorization do propio proxy antes do reenvío habitual. Conserve o campo Authorization orixinal para a orixe. Un proxy pai superior, se existe, necesita a súa propia disposición deliberada de autenticación en lugar de recibir por accidente esta credencial do cliente.