我在使用X-PACK保护的弹性云实例中使用了弹性搜索实例。
之前我一直在使用高级别的休息客户端而没有任何问题,但我无法找到如何在其上发送基本身份验证标头。
我曾尝试将凭据作为网址的一部分,但在这种情况下它似乎无法连接。
有没有人成功连接到高级休息客户端的安全弹性搜索?
干杯,
答案 0 :(得分:17)
您可以为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);
<强>参考文献:强>