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>

Reply via email to