¿Cómo puedo configurar una directiva nginx proxy_pass que también incluirá información de autenticación básica HTTP enviada al host proxy?
Este es un ejemplo de la URL que necesito para proxy:
http://username:[email protected]/export?uuid=1234567890
El objetivo final es permitir que 1 servidor presente archivos desde otro servidor (al que estamos representando) sin exponer el URI del servidor proxy. Tengo esto funcionando 90% correcto ahora siguiendo la configuración de Nginx que se encuentra aquí:
http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
Solo necesito agregar la autenticación básica HTTP para enviar al servidor proxy
Respuestas:
Hice un informe sobre esto hace un tiempo. Vea los detalles aquí:
http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html
Por ejemplo:
"a2luZzppc25ha2Vk" está codificado en base64 "king: isnaked", por lo que funcionaría para
http: // king: [email protected]
Siéntase libre de revisar la publicación del blog para más detalles.
fuente
Obtuve esto trabajando con la respuesta de alvosu pero tuve que ingresar la palabra "Básico" dentro de la cita de la cadena base64 para que se viera así:
fuente
Establezca la Autorización proxy_set_header "USER_AND_PASS", donde USER_AND_PASS = base64 (usuario: pase)
fuente
Basic
.Elimine el encabezado de autorización que se pasa reenviado por nginx con
proxy_set_header Authorization "";
.Configuré nginx para hacer autenticación básica, pero el
Authorization
encabezado se estaba pasando en laproxy_pass
directiva y el extremo receptor no podía manejar el token.(Específico para mi caso, este error fue devuelto
Reason: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
)fuente