web-dev-qa-db-ja.com

JAVAのエラスティックサーチ高レベルクライアントに認証を追加します

X-PACKで保護されたエラスティッククラウドインスタンスでelasticsearchインスタンスを使用しています。

以前は問題なく高レベルのレストクライアントを使用していましたが、基本認証ヘッダーを送信する方法を見つけることができません。

資格情報をURLの一部として追加しようとしましたが、その場合は接続できなかったようです。

高レベルのレストクライアントを使用して安全なelasticsearchに接続することに成功した人はいますか?

乾杯、

13
pedromarce

ユーザー名とパスワードをJava Low Level REST Clientに指定し、Low Level REST ClientをRestHighLevelClientインスタンス。

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials("user", "password"));

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            }
        });

RestHighLevelClient client = new RestHighLevelClient(builder);

参考文献:

21
Bless