This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 35e9210e86f0b63d01e2b036c2d2c80ea434d72e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> AuthorDate: Thu May 8 23:16:33 2025 +0000 Bump org.opensearch.client:opensearch-rest-client from 2.19.2 to 3.0.0 Bumps [org.opensearch.client:opensearch-rest-client](https://github.com/opensearch-project/OpenSearch) from 2.19.2 to 3.0.0. - [Release notes](https://github.com/opensearch-project/OpenSearch/releases) - [Changelog](https://github.com/opensearch-project/OpenSearch/blob/main/CHANGELOG.md) - [Commits](https://github.com/opensearch-project/OpenSearch/compare/2.19.2...3.0.0) --- updated-dependencies: - dependency-name: org.opensearch.client:opensearch-rest-client dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <supp...@github.com> --- .../opensearch/client/OpenSearchClientContext.java | 20 ++++++++++++++++---- .../client/OpenSearchClientFactoryBean.java | 20 ++++++++------------ pom.xml | 2 +- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientContext.java b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientContext.java index df8ce70a99..3a36aaf107 100644 --- a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientContext.java +++ b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientContext.java @@ -18,12 +18,16 @@ */ package org.apache.syncope.ext.opensearch.client; -import org.apache.http.HttpHost; +import java.net.URISyntaxException; +import java.util.Objects; +import org.apache.hc.core5.http.HttpHost; import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO; import org.apache.syncope.core.persistence.api.dao.GroupDAO; import org.apache.syncope.core.persistence.api.dao.UserDAO; import org.identityconnectors.common.CollectionUtil; import org.opensearch.client.opensearch.OpenSearchClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -35,12 +39,20 @@ import org.springframework.context.annotation.Lazy; @Configuration(proxyBeanMethods = false) public class OpenSearchClientContext { + protected static final Logger LOG = LoggerFactory.getLogger(OpenSearchClientContext.class); + @ConditionalOnMissingBean @Bean public OpenSearchClientFactoryBean openSearchClientFactoryBean(final OpenSearchProperties props) { - return new OpenSearchClientFactoryBean( - CollectionUtil.nullAsEmpty(props.getHosts()).stream(). - map(HttpHost::create).toList()); + return new OpenSearchClientFactoryBean(CollectionUtil.nullAsEmpty(props.getHosts()).stream(). + map(host -> { + try { + return HttpHost.create(host); + } catch (URISyntaxException e) { + LOG.error("Invalid host: {}", host, e); + return null; + } + }).filter(Objects::nonNull).toList()); } @ConditionalOnMissingBean diff --git a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java index 0aa40aeaad..8bbefceda7 100644 --- a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java +++ b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java @@ -23,14 +23,10 @@ import com.fasterxml.jackson.databind.json.JsonMapper; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.List; -import org.apache.http.Header; -import org.apache.http.HttpHeaders; -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.message.BasicHeader; +import org.apache.hc.core5.http.Header; +import org.apache.hc.core5.http.HttpHeaders; +import org.apache.hc.core5.http.HttpHost; +import org.apache.hc.core5.http.message.BasicHeader; import org.opensearch.client.RestClient; import org.opensearch.client.RestClientBuilder; import org.opensearch.client.json.jackson.JacksonJsonpMapper; @@ -102,10 +98,10 @@ public class OpenSearchClientFactoryBean implements FactoryBean<OpenSearchClient if (client == null) { RestClientBuilder builder = RestClient.builder(hosts.toArray(HttpHost[]::new)); if (username != null && password != null) { - CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); - credentialsProvider.setCredentials( - AuthScope.ANY, new UsernamePasswordCredentials(username, password)); - builder.setHttpClientConfigCallback(b -> b.setDefaultCredentialsProvider(credentialsProvider)); + String encodedAuth = Base64.getEncoder(). + encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8)); + builder.setDefaultHeaders( + new Header[] { new BasicHeader(HttpHeaders.AUTHORIZATION, "Bearer " + encodedAuth) }); } else if (serviceToken != null) { builder.setDefaultHeaders( new Header[] { new BasicHeader(HttpHeaders.AUTHORIZATION, "Bearer " + serviceToken) }); diff --git a/pom.xml b/pom.xml index 93df03b362..a568443910 100644 --- a/pom.xml +++ b/pom.xml @@ -430,7 +430,7 @@ under the License. <disruptor.version>4.0.0</disruptor.version> <elasticsearch.version>9.0.1</elasticsearch.version> - <opensearch.version>2.19.2</opensearch.version> + <opensearch.version>3.0.0</opensearch.version> <opensearch-java.version>2.23.0</opensearch-java.version> <openfga.version>v1</openfga.version>