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