在this SO answer of how to secure JHLRC注释中对我的this的后续问题中询问了此问题,我在这里解释了如何在Elasticsearch JHLRC请求中发送基本证书,但它不在客户端级别,而是在请求级别。
我觉得在客户端级别进行配置,可以避免在仅与少数用户打交道的情况下再次重复相同的代码,这将有助于在客户端本身中配置凭据。
最佳答案
您可以按照this official link中所述执行以下步骤。
使用CredentialsProvider
创建BasicCredentialsProvider
。
final CredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("elastic", "elastic"));
现在,在构建其余客户端(JHLRC)时使用CredentialsProvider
。RestHighLevelClient restHighLevelClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(scannerConfiguration.getElasticsearchConfig().getHost(),
scannerConfiguration.getElasticsearchConfig().getPort(),
"http")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider);
}
}));
关于security - 使用基本凭证提供者配置Elasticsearch Rest高级客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62547260/