Elasticsearch の Rest5Client は、設定コールバックを通じて Apache HttpClient 5 ビルダーを公開します。

import co.elastic.clients.transport.rest5_client.low_level.Rest5Client;
import org.apache.hc.core5.http.HttpHost;

var proxy = new HttpHost("http", "proxy.example.net", 8080);

var rest = Rest5Client.builder(
    new HttpHost("https", "search.example.net", 9200))
    .setHttpClientConfigCallback(httpBuilder -> {
        httpBuilder.setProxy(proxy);
    })
    .build();

rest をアプリケーションの Elasticsearch トランスポート設定に渡し、そのコンポーネントの停止時にクローズします。検索ホストは HTTPS のままです。プロキシの http スキームは中間プロキシへの接続を表します。公開された検索ホストへの許可された公開プロキシ経由の経路には、HTTP プロキシ一覧 がエンドポイント候補を提供します。選択したプロキシが検索ホストとポートを許可していることを確認してください。

プロキシ認証では、同じコールバック内で適切なスコープの Apache 5 資格情報プロバイダーを付加します。Elasticsearch のアカウントは別に保ちます。

コールバックは Consumer を受け取ります。置換値を返さずに、渡されたビルダーをブロック内で設定してください。org.apache.http を使う RestHighLevelClient の例は旧世代のものです。Apache 5 は org.apache.hc パッケージを使います。

関連記事