Como posso configurar uma diretiva nginx proxy_pass que também inclui informações de autenticação HTTP Basic enviadas ao host proxy?
Este é um exemplo da URL que eu preciso proxy para:
http://username:[email protected]/export?uuid=1234567890
O objetivo final é permitir que um servidor apresente arquivos de outro servidor (aquele para o qual estamos fazendo proxy) sem expor o URI do servidor proxy. Eu tenho este trabalho 90% correto agora de seguir a configuração Nginx encontrada aqui:
http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
Eu só preciso adicionar a autenticação HTTP Basic para enviar ao servidor proxy
Respostas:
Eu escrevi sobre isso há um tempo atrás. Veja os detalhes aqui:
http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html
Por exemplo:
"a2luZzppc25ha2Vk" é codificado como "king: isnaked" base64, de modo que funcionaria para
http: // rei: [email protected]
Sinta-se à vontade para conferir a postagem no blog para obter mais detalhes.
fonte
Eu trabalhei com a resposta do alvosu, mas tive que inserir a palavra "Básico" dentro da citação da string base64, para que ela se parecesse com isso:
fonte
Defina a autorização proxy_set_header "USER_AND_PASS", em que USER_AND_PASS = base64 (usuário: passe)
fonte
Basic
.Remova o cabeçalho de autorização que é passado encaminhado pelo nginx com
proxy_set_header Authorization "";
.Eu configurei o nginx para realizar autenticação básica, mas o
Authorization
cabeçalho estava sendo repassado naproxy_pass
diretiva e a extremidade receptora não conseguiu lidar com o token.(Específico para o meu caso, esse erro foi retornado
Reason: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
)fonte