【问题标题】:Configure Elasticsearch rest high level client with Basic credential provider使用基本凭证提供程序配置 Elasticsearch REST 高级客户端
【发布时间】:2020-06-24 03:44:04
【问题描述】:

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

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

【问题讨论】:

    标签: security authentication elasticsearch resthighlevelclient


    【解决方案1】:

    您可以按照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);
                        }
                    }));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-04
      • 2020-08-30
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      相关资源
      最近更新 更多