#elasticsearch
#elasticsearch
Вопрос:
Я пытаюсь получить доступ к установке cloud Elasticsearch из нашей сети, для которой требуется использовать прокси для внешних запросов. Это фрагмент кода, который я использую для передачи учетных данных Elasticsearch и настроек нашего прокси:
CredentialsProvider CredentialsProvider = new BasicCredentialsProvider(); CredentialsProvider.setCredentials(AuthScope.ЛЮБОЕ новое имя пользователя, пароль, учетные данные (elasticUser, elasticPassword));
RestClientBuilder restClientBuilder = RestClient.builder(новый HttpHost(имя хоста, порт, «https»)).setHttpClientConfigCallback(HttpClientBuilder -> HttpClientBuilder.setDefaultCredentialsProvider(CredentialsProvider)).setHttpClientConfigCallback(HttpClientBuilder -> HttpClientBuilder.SetProxy(новый HttpHost(proxyURL», proxyPort, «http»)));
Клиент RestHighLevelClient = новый RestHighLevelClient(restClientBuilder);
Это приводит к следующему ответу от ES:
«Исключение в потоке «main» ElasticsearchStatusException[Исключение Elasticsearch [тип = security_exception, причина = действие [индексы: данные / чтение / поиск] требуется проверка подлинности]]»
Похоже, что учетные данные 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;
});