我在使用 X-PACK 保护的弹性云实例中使用 Elasticsearch 实例。
我之前一直在使用高级 rest 客户端,没有任何问题,但我无法找到如何在其上发送基本身份验证 header 。
我曾尝试将凭据作为 URL 的一部分,但在那种情况下似乎无法连接。
有没有人成功连接到具有高级 rest 客户端的安全 Elasticsearch ?
最佳答案
您可以为 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);
引用资料:
关于java - 在 Java 的 elasticsearch 高级客户端中添加身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185570/