Elixir Tesla:Mint アダプターでプロキシ認証を設定する
Basic ヘッダーを Mint アダプターの接続オプションに設定し、接続先へのリクエストより先に CONNECT とともに送れるようにします。
basic = "Basic " <> Base.encode64(proxy_user <> ":" <> proxy_password)
client = Tesla.client([], {Tesla.Adapter.Mint, [
proxy: {:http, "proxy.example", 8080, []},
proxy_headers: [{"proxy-authorization", basic}]
]})アプリで必要な操作には、この Tesla クライアントを使います。操作の URL は引き続きサービスの接続先を指し、proxy_user と proxy_password は中継側のアカウントを表します。
トンネル型プロキシでは、Mint は proxy_headers を CONNECT に適用します。転送モードではリクエストにこれらのヘッダーを組み込みます。接続先のヘッダーを扱う一般的な Tesla ミドルウェアは、この先行する接続段階の入力とは異なります。
例では Basic を使っています。Base64 は表現形式であり、暗号化ではありません。保護の有無は、プロキシ接続のトランスポートに依存します。
これらのオプションは Mint アダプター用です。Finch、Hackney などに変更する場合は、それぞれのインターフェースを使う必要があります。接続先の Authorization は、引き続き別の認証のやり取りです。