This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 9e988880b1447d969d4f101dc981dfb4ce9c1079 Author: Tran Tien Duc <[email protected]> AuthorDate: Wed Nov 6 16:28:07 2019 +0700 JAMES-2905 Update ClientProvider to use the credential when available The current ES version 6.3.2 doesn't support authentication by default. There is a paid package called xpact should be installed to enable authentication. So no way to test authentication on a real ES server --- .../apache/james/backends/es/ClientProvider.java | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ClientProvider.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ClientProvider.java index 5412b09..4f35e38 100644 --- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ClientProvider.java +++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ClientProvider.java @@ -40,6 +40,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.annotations.VisibleForTesting; + import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; @@ -70,27 +71,27 @@ public class ClientProvider implements Provider<RestHighLevelClient> { .block(); } - private RestHighLevelClient connectToCluster(ElasticSearchConfiguration configuration) throws IOException { + private RestHighLevelClient connectToCluster(ElasticSearchConfiguration configuration) { LOGGER.info("Trying to connect to ElasticSearch service at {}", LocalDateTime.now()); - Optional<CredentialsProvider> credentials = credentials(configuration); RestClientBuilder restClientBuilder = RestClient.builder(hostsToHttpHosts()); - credentials.ifPresent(provider -> restClientBuilder - .setHttpClientConfigCallback(httpClientBuilder -> { - return httpClientBuilder.setDefaultCredentialsProvider(provider); - })); return new RestHighLevelClient( - restClientBuilder + credentialsProvider(configuration) + .map(provider -> restClientBuilder.setHttpClientConfigCallback( + httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(provider))) + .orElse(restClientBuilder) .setMaxRetryTimeoutMillis(Math.toIntExact(configuration.getRequestTimeout().toMillis()))); } - private Optional<CredentialsProvider> credentials(ElasticSearchConfiguration configuration) { - if (configuration.getUser().isPresent() && configuration.getPassword().isPresent()) { - CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); - credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(configuration.getUser().get(), configuration.getPassword().get())); - return Optional.of(credentialsProvider); - } - return Optional.empty(); + private Optional<CredentialsProvider> credentialsProvider(ElasticSearchConfiguration configuration) { + return configuration.getCredential() + .map(credential -> { + CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, + new UsernamePasswordCredentials(credential.getUsername(), credential.getPassword())); + + return credentialsProvider; + }); } private HttpHost[] hostsToHttpHosts() { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
