这个问题是在我关于如何保护JHLRC的后续问题的后续问题中提出的,我解释了如何在Elasticsearch JHLRC请求中发送基本凭证,但它不在客户端级别,而是在请求级别。
我觉得在客户端级别进行配置,可以避免在您只与少数用户打交道的情况下再次重复相同的代码,在客户端本身中配置凭据会很有帮助。
您可以按照此官方链接中提到的以下步骤进行操作。
使用BasicCredentialsProvider
创建CredentialsProvider
。
final CredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("elastic", "elastic"));
现在在构建 rest 客户端 (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);
}
}));