使用基本凭证提供程序配置 Elasticsearch 休息高级客户端
Configure Elasticsearch rest high level client with Basic credential provider
这个问题是在我的 in 评论的后续问题中提出的,我在其中解释了如何在 Elasticsearch JHLRC 请求中发送基本凭证,但它不是在客户端级别,而是在请求级别.
我觉得在客户端级别进行配置,在只与少数用户打交道的情况下,可以避免再次重复相同的代码,在客户端本身配置凭据会很有帮助。
您可以按照 this official link 中提到的以下步骤进行操作。
使用 BasicCredentialsProvider
创建 CredentialsProvider
。
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);
}
}));
这个问题是在我的
我觉得在客户端级别进行配置,在只与少数用户打交道的情况下,可以避免再次重复相同的代码,在客户端本身配置凭据会很有帮助。
您可以按照 this official link 中提到的以下步骤进行操作。
使用 BasicCredentialsProvider
创建 CredentialsProvider
。
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);
}
}));