【发布时间】:2020-04-06 01:02:28
【问题描述】:
我是 ES 的新手,我的新工作有一个任务是从 6.4.2 升级到 7.4.1 - 从 TCP 客户端到 Rest High Level API。
之前我们是这样构建客户端的:
Settings settings = Settings.builder()
.put("xpack.security.user", String.format("%s:%s",esJavaUser,esJavaPassword))
.put("cluster.name", esClusterName)
.put("xpack.security.transport.ssl.enabled", xpackSecurityTransportSslEnabled)
.put("xpack.ssl.certificate_authorities", xpackSslCertificateAuthorities)
.build();
client = new PreBuiltXPackTransportClient(settings);
现在,在 rest API 中,它变成了这样:
final CredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(esJavaUser, esJavaPassword));
RestClientBuilder restClientBuilder = RestClient.builder(hosts)
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider));
restHighLevelClient = new RestHighLevelClient(restClientBuilder);
在这个版本中,我通过 CredentialsProvider 设置了 ES 用户和密码但是ssl.enabled 和certificate_authorities” 呢?我应该如何为他们提供 REST API?
【问题讨论】:
标签: java authentication elasticsearch certificate elasticsearch-x-pack