使用基本凭证提供程序配置 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);
                    }
                }));