在弹性搜索高级客户端中为JAVA添加身份验证

ped*_*rce 11 java authentication elasticsearch

我在使用X-PACK保护的弹性云实例中使用了弹性搜索实例.

我之前一直在使用高级休息客户端没有任何问题,但我无法找到如何发送基本身份验证标头.

我试图将凭据作为URL的一部分,但在这种情况下它似乎无法连接.

有没有人成功连接到高级休息客户端的安全弹性搜索?

干杯,

Ble*_*ess 24

您可以为Java低级别REST客户端指定用户名和密码,并将低级别REST客户端传递给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);
Run Code Online (Sandbox Code Playgroud)

参考文献: