basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)

client = Tesla.client([], {Tesla.Adapter.Mint, [
  proxy: {:http, "proxy.example", 8080, []},
  proxy_headers: [{"proxy-authorization", basic}]
]})

Usate questo client Tesla per le operazioni previste dall’applicazione. I loro URL restano quelli dei servizi di destinazione; proxy_user e proxy_password indicano l’account presso l’intermediario.

Mint applica proxy_headers a CONNECT per un proxy a tunnel, oppure unisce gli header alle richieste in modalità inoltro. Un middleware Tesla generico per gli header di destinazione non equivale a questi dati di connessione usati prima.

L’esempio usa Basic. Base64 è una rappresentazione, non una cifratura; la protezione dipende dal trasporto della connessione al proxy.

Mantenete queste opzioni con l’adattatore Mint. Passare a Finch, Hackney o a un altro adattatore richiede la relativa interfaccia, e l’Authorization della destinazione resta uno scambio di autenticazione diverso.

Articoli correlati