【问题标题】:Elasticsearch RestHighLevelClient behind a corporate firewall via a proxy通过代理在企业防火墙后面的 Elasticsearch RestHighLevelClient
【发布时间】:2020-11-07 22:15:51
【问题描述】:

我正在尝试从我们的网络访问云 Elasticsearch 安装,这需要使用代理来处理外部请求。这是我用来传递 Elasticsearch 凭据和代理设置的代码的 sn-p:

CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(elasticUser, elasticPassword));

RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(hostName,port,"https")).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setProxy(new HttpHost(proxyURL" , 代理端口, "http")));

RestHighLevelClient 客户端 = new RestHighLevelClient(restClientBuilder);

这导致来自 ES 的响应:

“线程“主”中的异常 ElasticsearchStatusException[Elasticsearch 异常 [type=security_exception, reason=action [indices:data/read/search] 需要身份验证]]"

似乎 Elasticsearch 凭据由于某种原因未通过。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    应该是这样的:

    RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(hostName, port, "https"))
        .setHttpClientConfigCallback(clientBuilder -> {
          clientBuilder.setDefaultCredentialsProvider(credentialsProvider);
          clientBuilder.setProxy(new HttpHost(proxyURL, proxyPort, "http"));
          return clientBuilder;
         });
    

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 2019-02-07
      • 2020-10-24
      • 2016-02-11
      • 1970-01-01
      • 2013-05-31
      • 2017-11-29
      • 1970-01-01
      相关资源
      最近更新 更多