This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new 3352d1fa6d Update Apache HttpClient5 to 5.4.1 and Apache HttpCore5 to
5.3.1 (#2161)
3352d1fa6d is described below
commit 3352d1fa6dbfb89e166787628b480d1a73c00cf6
Author: Andriy Redko <[email protected]>
AuthorDate: Fri Nov 22 13:47:19 2024 -0500
Update Apache HttpClient5 to 5.4.1 and Apache HttpCore5 to 5.3.1 (#2161)
---
distribution/src/main/release/samples/pom.xml | 18 ++-------
parent/pom.xml | 4 +-
.../http/asyncclient/hc5/AsyncHTTPConduit.java | 45 ++++++++--------------
.../asyncclient/hc5/AsyncHTTPConduitFactory.java | 2 +-
.../hc5/URLConnectionAsyncHTTPConduit.java | 45 ++++++++--------------
5 files changed, 40 insertions(+), 74 deletions(-)
diff --git a/distribution/src/main/release/samples/pom.xml
b/distribution/src/main/release/samples/pom.xml
index 8f97642b2c..36f8a4c77f 100644
--- a/distribution/src/main/release/samples/pom.xml
+++ b/distribution/src/main/release/samples/pom.xml
@@ -32,7 +32,7 @@
<maven.deploy.skip>true</maven.deploy.skip>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.spring.boot.version>3.4.0</cxf.spring.boot.version>
-
<cxf.spring.cloud.eureka.version>4.1.3</cxf.spring.cloud.eureka.version>
+
<cxf.spring.cloud.eureka.version>4.2.0-RC1</cxf.spring.cloud.eureka.version>
<cxf.jetty12.version>12.0.15</cxf.jetty12.version>
<cxf.netty.version>4.1.115.Final</cxf.netty.version>
<cxf.httpcomponents.client.version>4.5.14</cxf.httpcomponents.client.version>
@@ -276,28 +276,16 @@
</pluginRepositories>
</profile>
<profile>
- <id>jdk11</id>
+ <id>jdk17</id>
<activation>
- <jdk>[11,16)</jdk>
+ <jdk>[17,)</jdk>
</activation>
- <properties>
- <cxf.spring.boot.version>2.7.6</cxf.spring.boot.version>
- <cxf.spring.version>5.3.24</cxf.spring.version>
- <spring.boot.version>2.7.6</spring.boot.version>
- </properties>
<repositories>
<repository>
<id>spring.milestone</id>
<url>https://repo.spring.io/milestone/</url>
<name>Spring Milestone Repo</name>
</repository>
- <repository>
- <id>netflix.candidates</id>
-
<url>https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
</repositories>
</profile>
</profiles>
diff --git a/parent/pom.xml b/parent/pom.xml
index 54147913a9..f18d904f5d 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -128,8 +128,8 @@
<cxf.httpcomponents.client.version>4.5.14</cxf.httpcomponents.client.version>
<cxf.httpcomponents.core.version.range>[4.3,4.5.0)</cxf.httpcomponents.core.version.range>
<cxf.httpcomponents.core.version>4.4.16</cxf.httpcomponents.core.version>
-
<cxf.httpcomponents.client5.version>5.3.1</cxf.httpcomponents.client5.version>
-
<cxf.httpcomponents.core5.version>5.2.5</cxf.httpcomponents.core5.version>
+
<cxf.httpcomponents.client5.version>5.4.1</cxf.httpcomponents.client5.version>
+
<cxf.httpcomponents.core5.version>5.3.1</cxf.httpcomponents.core5.version>
<cxf.jackson.version>2.17.2</cxf.jackson.version>
<cxf.jackson.databind.version>2.17.2</cxf.jackson.databind.version>
<cxf.jacorb.version>3.9</cxf.jacorb.version>
diff --git
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduit.java
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduit.java
index 8b27ffeea1..52739f6099 100644
---
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduit.java
+++
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduit.java
@@ -44,7 +44,6 @@ import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
-import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
@@ -78,19 +77,16 @@ import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
import org.apache.hc.client5.http.protocol.HttpClientContext;
+import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
import org.apache.hc.core5.concurrent.BasicFuture;
import org.apache.hc.core5.concurrent.FutureCallback;
import org.apache.hc.core5.http.Header;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.HttpResponse;
import org.apache.hc.core5.http.config.Registry;
-import org.apache.hc.core5.http.nio.ssl.BasicClientTlsStrategy;
import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
import org.apache.hc.core5.http.protocol.HttpContext;
-import org.apache.hc.core5.net.NamedEndpoint;
-import org.apache.hc.core5.reactor.ssl.SSLSessionInitializer;
-import org.apache.hc.core5.reactor.ssl.SSLSessionVerifier;
-import org.apache.hc.core5.reactor.ssl.TlsDetails;
+import org.apache.hc.core5.reactor.ssl.SSLBufferMode;
import org.apache.hc.core5.util.Timeout;
/**
@@ -571,28 +567,21 @@ public class AsyncHTTPConduit extends
HttpClientHTTPConduit {
final HostnameVerifier verifier =
org.apache.cxf.transport.https.SSLUtils
.getHostnameVerifier(tlsClientParameters);
- tlsStrategy = new BasicClientTlsStrategy(sslcontext,
- new SSLSessionInitializer() {
- @Override
- public void initialize(NamedEndpoint endpoint,
SSLEngine engine) {
- initializeSSLEngine(sslcontext, engine);
- }
- },
- new SSLSessionVerifier() {
- @Override
- public TlsDetails verify(NamedEndpoint endpoint,
SSLEngine engine)
- throws SSLException {
- final SSLSession sslsession =
engine.getSession();
-
- if (!verifier.verify(endpoint.getHostName(),
sslsession)) {
- throw new SSLException("Could not verify
host " + endpoint.getHostName());
- }
-
- setSSLSession(sslsession);
- return new TlsDetails(sslsession,
engine.getApplicationProtocol());
- }
- }
- );
+ String[] cipherSuites =
+
SSLUtils.getCiphersuitesToInclude(tlsClientParameters.getCipherSuites(),
+
tlsClientParameters.getCipherSuitesFilter(),
+
sslcontext.getSocketFactory().getDefaultCipherSuites(),
+
SSLUtils.getSupportedCipherSuites(sslcontext),
+ LOG);
+
+ final String protocol =
tlsClientParameters.getSecureSocketProtocol() != null ? tlsClientParameters
+ .getSecureSocketProtocol() : sslcontext.getProtocol();
+
+ final String[] protocols = findProtocols(protocol,
+ sslContext.getSupportedSSLParameters().getProtocols());
+
+ tlsStrategy = new DefaultClientTlsStrategy(sslcontext,
protocols,
+ cipherSuites, SSLBufferMode.STATIC, verifier);
} catch (final GeneralSecurityException e) {
LOG.warning(e.getMessage());
}
diff --git
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduitFactory.java
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduitFactory.java
index 634843dc19..5b98bf1434 100644
---
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduitFactory.java
+++
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/AsyncHTTPConduitFactory.java
@@ -346,7 +346,7 @@ public class AsyncHTTPConduitFactory implements
HTTPConduitFactory {
final Lookup<TlsStrategy> tlsLookupStrategy =
RegistryBuilder.<TlsStrategy>create()
- .register("https", (tlsStrategy != null) ? tlsStrategy :
DefaultClientTlsStrategy.getSystemDefault())
+ .register("https", (tlsStrategy != null) ? tlsStrategy :
DefaultClientTlsStrategy.createSystemDefault())
.build();
final PoolingAsyncClientConnectionManager connectionManager = new
PoolingAsyncClientConnectionManager(
diff --git
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/URLConnectionAsyncHTTPConduit.java
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/URLConnectionAsyncHTTPConduit.java
index 6732f1e124..09c8dd2a45 100644
---
a/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/URLConnectionAsyncHTTPConduit.java
+++
b/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/URLConnectionAsyncHTTPConduit.java
@@ -44,7 +44,6 @@ import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
-import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
@@ -78,19 +77,16 @@ import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
import org.apache.hc.client5.http.protocol.HttpClientContext;
+import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
import org.apache.hc.core5.concurrent.BasicFuture;
import org.apache.hc.core5.concurrent.FutureCallback;
import org.apache.hc.core5.http.Header;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.HttpResponse;
import org.apache.hc.core5.http.config.Registry;
-import org.apache.hc.core5.http.nio.ssl.BasicClientTlsStrategy;
import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
import org.apache.hc.core5.http.protocol.HttpContext;
-import org.apache.hc.core5.net.NamedEndpoint;
-import org.apache.hc.core5.reactor.ssl.SSLSessionInitializer;
-import org.apache.hc.core5.reactor.ssl.SSLSessionVerifier;
-import org.apache.hc.core5.reactor.ssl.TlsDetails;
+import org.apache.hc.core5.reactor.ssl.SSLBufferMode;
import org.apache.hc.core5.util.Timeout;
/**
@@ -574,28 +570,21 @@ public class URLConnectionAsyncHTTPConduit extends
URLConnectionHTTPConduit {
final HostnameVerifier verifier =
org.apache.cxf.transport.https.SSLUtils
.getHostnameVerifier(tlsClientParameters);
- tlsStrategy = new BasicClientTlsStrategy(sslcontext,
- new SSLSessionInitializer() {
- @Override
- public void initialize(NamedEndpoint endpoint,
SSLEngine engine) {
- initializeSSLEngine(sslcontext, engine);
- }
- },
- new SSLSessionVerifier() {
- @Override
- public TlsDetails verify(NamedEndpoint endpoint,
SSLEngine engine)
- throws SSLException {
- final SSLSession sslsession =
engine.getSession();
-
- if (!verifier.verify(endpoint.getHostName(),
sslsession)) {
- throw new SSLException("Could not verify
host " + endpoint.getHostName());
- }
-
- setSSLSession(sslsession);
- return new TlsDetails(sslsession,
engine.getApplicationProtocol());
- }
- }
- );
+ String[] cipherSuites =
+
SSLUtils.getCiphersuitesToInclude(tlsClientParameters.getCipherSuites(),
+
tlsClientParameters.getCipherSuitesFilter(),
+
sslcontext.getSocketFactory().getDefaultCipherSuites(),
+
SSLUtils.getSupportedCipherSuites(sslcontext),
+ LOG);
+
+ final String protocol =
tlsClientParameters.getSecureSocketProtocol() != null ? tlsClientParameters
+ .getSecureSocketProtocol() : sslcontext.getProtocol();
+
+ final String[] protocols = findProtocols(protocol,
+ sslContext.getSupportedSSLParameters().getProtocols());
+
+ tlsStrategy = new DefaultClientTlsStrategy(sslcontext,
protocols,
+ cipherSuites, SSLBufferMode.STATIC, verifier);
} catch (final GeneralSecurityException e) {
LOG.warning(e.getMessage());
}