0

在我的this SO answer的后续问题中提出了这个问题,即如何在此评论中保护JHLRC,我解释了如何在Elasticsearch JHLRC请求中发送基本凭据,但它不在客户端级别,而是在请求级别.

我觉得在客户端级别进行配置,可以避免在只与少数用户打交道的情况下再次重复相同的代码,在客户端本身配置凭据会很有帮助。

4

1 回答 1

0

您可以按照此官方链接中提到的以下步骤进行操作。

使用. 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);
                    }
                }));
于 2020-06-24T03:48:13.207 回答