Elixir Tesla: autenticação do proxy com o adaptador Mint
Coloque o cabeçalho Basic nas opções de conexão do adaptador Mint para que acompanhe o CONNECT antes da requisição ao destino.
basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)
client = Tesla.client([], {Tesla.Adapter.Mint, [
proxy: {:http, "proxy.example", 8080, []},
proxy_headers: [{"proxy-authorization", basic}]
]})Use esse cliente Tesla nas operações pretendidas pela aplicação. As URLs continuam apontando para os serviços de destino; proxy_user e proxy_password identificam a conta no intermediário.
O Mint aplica proxy_headers ao CONNECT em um proxy de túnel ou mescla esses cabeçalhos às requisições no modo de encaminhamento. Um middleware genérico de cabeçalhos de destino do Tesla não equivale a essa configuração de conexão usada antes.
O exemplo usa Basic. Base64 é uma representação, não criptografia; a proteção depende do transporte da conexão com o proxy.
Mantenha essas opções no adaptador Mint. A troca por Finch, Hackney ou outro adaptador exige usar a interface correspondente, e o Authorization do destino continua sendo outra troca de autenticação.