在 JAVA 的 elasticsearch 高级客户端中添加身份验证
Posted
技术标签:
【中文标题】在 JAVA 的 elasticsearch 高级客户端中添加身份验证【英文标题】:Add authentication in elasticsearch high level client for JAVA 【发布时间】:2018-06-19 12:20:15 【问题描述】:我正在使用 X-PACK 保护的弹性云实例中的弹性搜索实例。
我之前一直在使用高级别的客户端没有任何问题,但我无法找到如何在其上发送基本身份验证标头。
我尝试将凭据作为 URL 的一部分,但在这种情况下似乎无法连接。
有没有人成功连接到具有高级休息客户端的安全弹性搜索?
干杯,
【问题讨论】:
【参考方案1】:您可以指定 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);
参考资料:
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-getting-started-initialization.html https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/_basic_authentication.html【讨论】:
如果我使用 search-guard 而不是 X-Pack,你能告诉我如何做同样的事情吗?以上是关于在 JAVA 的 elasticsearch 高级客户端中添加身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch - Java API 操作 ES7.15.0ES7.x 索引,文档;高级搜索