You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2025/02/10 17:46:22 UTC
(httpcomponents-client) branch master updated (39fca09d3 -> 6eac9d2a7)
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
omit 39fca09d3 Minor tweaks to RELEASE_NOTES.txt
omit da917c757 Updated release notes for HttpClient 5.5-alpha1 release
new aa00c6c07 Changed sequence of arguments of the new `#processChallenge` method in AuthScheme
new a9bc88caf Pass scheme name to `#create` method of DetachedSocketFactory
new 6eac9d2a7 Updated release notes for HttpClient 5.5-alpha1 release
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (39fca09d3)
\
N -- N -- N refs/heads/master (6eac9d2a7)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/org/apache/hc/client5/http/auth/AuthScheme.java | 6 +++---
.../hc/client5/http/impl/auth/AuthenticationHandler.java | 4 ++--
.../impl/io/DefaultHttpClientConnectionOperator.java | 2 +-
.../apache/hc/client5/http/io/DetachedSocketFactory.java | 7 +++++++
.../impl/io/TestBasicHttpClientConnectionManager.java | 10 +++++-----
.../http/impl/io/TestHttpClientConnectionOperator.java | 16 ++++++++--------
.../impl/io/TestPoolingHttpClientConnectionManager.java | 10 +++++-----
7 files changed, 31 insertions(+), 24 deletions(-)
(httpcomponents-client) 03/03: Updated release notes for HttpClient 5.5-alpha1 release
Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit 6eac9d2a73be2bd17db0d5d2d346032a80a6dde3
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Sun Feb 9 15:22:32 2025 +0100
Updated release notes for HttpClient 5.5-alpha1 release
---
RELEASE_NOTES.txt | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 79 insertions(+), 1 deletion(-)
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 929eccc82..feba75fee 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,4 +1,82 @@
-Release 5.4
+Release 5.5 ALPHA1
+------------------
+
+This is the first ALPHA release in the 5.5 release series. It adds several experimental
+features and improvements such as request multiplexing over a shared HTTP/2 connection
+and the Classic API facade acting as a compatibility bridge between classic I/O client
+services and the asynchronous message transport used internally.
+
+
+Notable changes and features included in the 5.5 series:
+
+* Improved conformance to RFC 7616 (HTTP Digest Access Authentication).
+
+* The connection pool implementation acts as a caching facade in front of a standard
+ managed connection pool and shares already leased connections to multiplex message
+ exchanges over active HTTP/2 connections. Experimental.
+
+* Extended Auth API and improved authentication protocol logic to support mutual
+ authentication.
+
+* The Classic API facade acting as a compatibility bridge between the classic I/O client
+ services (based on the standard InputStream / OutputStream model) and the asynchronous
+ message transport used internally. Experimental.
+
+* HTTP/2 support for the Fluent Facade (via Classic API facade). Experimental.
+
+
+Change Log
+-------------------
+
+* Async transport can now be used internally by the Fluent Facade.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* Classic over async bridge.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* HTTPCLIENT-2356: Extended Auth APIs and authentication protocol logic to support mutual
+ authentication.
+ Contributed by Istvan Toth <stoty at apache.org>
+
+* Decode Subject Alternative Names for IP, DNS, and binary data (#610).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+* Do not add `Upgrade` header if `Connection` header is already present (the caller manually
+ manages connection state).
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* Avoid logging the HTTP message version where it can be a hint, not a protocol version.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* Experimental connections pool implementation that acts as a caching facade in front of
+ a standard ManagedConnPool and shares already leased connections to multiplex message
+ exchanges over active HTTP/2 connections.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
+* HTTPCLIENT-2350 - Refactored the connect method in DefaultHttpClientConnectionOperator
+ to enhance flexibility in address resolution, specifically allowing for direct handling
+ of unresolved addresses (#598).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+* Enhanced DigestScheme for RFC 7616 Compliance and Expanded Hash Algorithm Support (#597).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+* Added request interceptor to check the `Authentication-Info` header in HTTP Digest Access
+ Authentication (#596).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+* Added client-side `rspauth` value for Digest auth, verifying server knowledge of shared
+ secret per RFC 7616. (#594).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+* Corrected method chaining in ClientTlsStrategyBuilder.
+ Contributed by Osip Fatkullin <osip.fatkullin at gmail.com>
+
+* HTTPCLIENT-2337: Sanitize X500Principal Logging in ClientTlsStrategy classes (#581).
+ Contributed by Arturo Bernal <abernal at apache.org>
+
+
+Release 5.4
------------------
This is the first GA release in the 5.4 release series. This release finalizes the 5.4 APIs,
(httpcomponents-client) 02/03: Pass scheme name to `#create` method of DetachedSocketFactory
Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit a9bc88caff5fe30433b891d9246b5cde859ca8c9
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Sun Feb 9 16:54:51 2025 +0100
Pass scheme name to `#create` method of DetachedSocketFactory
---
.../impl/io/DefaultHttpClientConnectionOperator.java | 2 +-
.../apache/hc/client5/http/io/DetachedSocketFactory.java | 7 +++++++
.../impl/io/TestBasicHttpClientConnectionManager.java | 10 +++++-----
.../http/impl/io/TestHttpClientConnectionOperator.java | 16 ++++++++--------
.../impl/io/TestPoolingHttpClientConnectionManager.java | 10 +++++-----
5 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java
index 33a4cfcf8..a08d25a38 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java
@@ -178,7 +178,7 @@ public void connect(
if (LOG.isDebugEnabled()) {
LOG.debug("{} connecting {}->{} ({})", endpointHost, localAddress, remoteAddress, connectTimeout);
}
- final Socket socket = detachedSocketFactory.create(socksProxy);
+ final Socket socket = detachedSocketFactory.create(endpointHost.getSchemeName(), socksProxy);
try {
// Always bind to the local address if it's provided.
if (localAddress != null) {
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/io/DetachedSocketFactory.java b/httpclient5/src/main/java/org/apache/hc/client5/http/io/DetachedSocketFactory.java
index 553410f9b..68b553e80 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/io/DetachedSocketFactory.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/io/DetachedSocketFactory.java
@@ -44,4 +44,11 @@ public interface DetachedSocketFactory {
Socket create(Proxy proxy) throws IOException;
+ /**
+ * @since 5.5
+ */
+ default Socket create(String schemeName, Proxy proxy) throws IOException {
+ return create(proxy);
+ }
+
}
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestBasicHttpClientConnectionManager.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestBasicHttpClientConnectionManager.java
index 1cede4fde..8bcacfaef 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestBasicHttpClientConnectionManager.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestBasicHttpClientConnectionManager.java
@@ -387,7 +387,7 @@ void testTargetConnect() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", 8443)).thenReturn(Collections.singletonList(new InetSocketAddress(remote, 8443)));
Mockito.when(schemePortResolver.resolve(target.getSchemeName(), target)).thenReturn(8443);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.when(tlsSocketStrategyLookup.lookup("https")).thenReturn(tlsSocketStrategy);
Mockito.when(tlsSocketStrategy.upgrade(
@@ -401,7 +401,7 @@ void testTargetConnect() throws Exception {
Mockito.verify(dnsResolver, Mockito.times(1)).resolve("somehost", 8443);
Mockito.verify(schemePortResolver, Mockito.times(1)).resolve(target.getSchemeName(), target);
- Mockito.verify(detachedSocketFactory, Mockito.times(1)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(1)).create("https", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8443), 234);
Mockito.verify(tlsSocketStrategy).upgrade(socket, "somehost", 443, tlsConfig, context);
@@ -409,7 +409,7 @@ void testTargetConnect() throws Exception {
Mockito.verify(dnsResolver, Mockito.times(2)).resolve("somehost", 8443);
Mockito.verify(schemePortResolver, Mockito.times(2)).resolve(target.getSchemeName(), target);
- Mockito.verify(detachedSocketFactory, Mockito.times(2)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(2)).create("https", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8443), 123);
Mockito.verify(tlsSocketStrategy, Mockito.times(2)).upgrade(socket, "somehost", 443, tlsConfig, context);
}
@@ -446,13 +446,13 @@ void testProxyConnectAndUpgrade() throws Exception {
Mockito.when(schemePortResolver.resolve(proxy.getSchemeName(), proxy)).thenReturn(8080);
Mockito.when(schemePortResolver.resolve(target.getSchemeName(), target)).thenReturn(8443);
Mockito.when(tlsSocketStrategyLookup.lookup("https")).thenReturn(tlsSocketStrategy);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
mgr.connect(endpoint1, null, context);
Mockito.verify(dnsResolver, Mockito.times(1)).resolve("someproxy", 8080);
Mockito.verify(schemePortResolver, Mockito.times(1)).resolve(proxy.getSchemeName(), proxy);
- Mockito.verify(detachedSocketFactory, Mockito.times(1)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(1)).create("http", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8080), 234);
Mockito.when(conn.getSocket()).thenReturn(socket);
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestHttpClientConnectionOperator.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestHttpClientConnectionOperator.java
index cc58551a2..11282ca99 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestHttpClientConnectionOperator.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestHttpClientConnectionOperator.java
@@ -99,7 +99,7 @@ void testConnect() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
final SocketConfig socketConfig = SocketConfig.custom()
.setSoKeepAlive(true)
@@ -143,7 +143,7 @@ void testConnectWithTLSUpgrade() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.when(tlsSocketStrategyLookup.lookup("https")).thenReturn(tlsSocketStrategy);
final SSLSocket upgradedSocket = Mockito.mock(SSLSocket.class);
@@ -178,7 +178,7 @@ void testConnectTimeout() throws Exception {
);
Mockito.when(dnsResolver.resolve("somehost", port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.doThrow(new SocketTimeoutException()).when(socket).connect(Mockito.any(), Mockito.anyInt());
Assertions.assertThrows(ConnectTimeoutException.class, () ->
connectionOperator.connect(
@@ -200,7 +200,7 @@ void testConnectFailure() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.doThrow(new ConnectException()).when(socket).connect(Mockito.any(), Mockito.anyInt());
Assertions.assertThrows(HttpHostConnectException.class, () ->
@@ -218,7 +218,7 @@ void testConnectFailover() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", 80)).thenReturn(Arrays.asList(ipAddress1, ipAddress2));
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(80);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.doThrow(new ConnectException()).when(socket).connect(
Mockito.eq(ipAddress1),
Mockito.anyInt());
@@ -243,7 +243,7 @@ void testConnectExplicitAddress() throws Exception {
final HttpHost host = new HttpHost(ip);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(80);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
final InetSocketAddress localAddress = new InetSocketAddress(local, 0);
final TlsConfig tlsConfig = TlsConfig.custom()
@@ -316,7 +316,7 @@ void testConnectWithDisableDnsResolution() throws Exception {
Mockito.when(dnsResolver.resolve(host.getHostName(), port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
final SocketConfig socketConfig = SocketConfig.custom()
.setSoKeepAlive(true)
@@ -359,7 +359,7 @@ void testConnectWithDnsResolutionAndFallback() throws Exception {
);
Mockito.when(dnsResolver.resolve("fallbackhost.com", port)).thenReturn(resolvedAddresses);
Mockito.when(schemePortResolver.resolve(host.getSchemeName(), host)).thenReturn(port);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
// Simulate failure to connect to the first resolved address
Mockito.doThrow(new ConnectException()).when(socket).connect(Mockito.eq(new InetSocketAddress(ip1, port)), Mockito.anyInt());
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestPoolingHttpClientConnectionManager.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestPoolingHttpClientConnectionManager.java
index 72f3c7fe6..c21c9fb82 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestPoolingHttpClientConnectionManager.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/io/TestPoolingHttpClientConnectionManager.java
@@ -267,7 +267,7 @@ void testTargetConnect() throws Exception {
Mockito.when(dnsResolver.resolve("somehost", 8443)).thenReturn(Collections.singletonList(new InetSocketAddress(remote, 8443)));
Mockito.when(schemePortResolver.resolve(target.getSchemeName(), target)).thenReturn(8443);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
Mockito.when(tlsSocketStrategyLookup.lookup("https")).thenReturn(tlsSocketStrategy);
Mockito.when(tlsSocketStrategy.upgrade(
@@ -281,7 +281,7 @@ void testTargetConnect() throws Exception {
Mockito.verify(dnsResolver, Mockito.times(1)).resolve("somehost", 8443);
Mockito.verify(schemePortResolver, Mockito.times(1)).resolve(target.getSchemeName(), target);
- Mockito.verify(detachedSocketFactory, Mockito.times(1)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(1)).create("https", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8443), 234);
Mockito.verify(tlsSocketStrategy).upgrade(socket, "somehost", 443, tlsConfig, context);
@@ -289,7 +289,7 @@ void testTargetConnect() throws Exception {
Mockito.verify(dnsResolver, Mockito.times(2)).resolve("somehost", 8443);
Mockito.verify(schemePortResolver, Mockito.times(2)).resolve(target.getSchemeName(), target);
- Mockito.verify(detachedSocketFactory, Mockito.times(2)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(2)).create("https", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8443), 123);
Mockito.verify(tlsSocketStrategy, Mockito.times(2)).upgrade(socket, "somehost", 443, tlsConfig, context);
}
@@ -336,13 +336,13 @@ void testProxyConnectAndUpgrade() throws Exception {
Mockito.when(schemePortResolver.resolve(proxy.getSchemeName(), proxy)).thenReturn(8080);
Mockito.when(schemePortResolver.resolve(target.getSchemeName(), target)).thenReturn(8443);
Mockito.when(tlsSocketStrategyLookup.lookup("https")).thenReturn(tlsSocketStrategy);
- Mockito.when(detachedSocketFactory.create(Mockito.any())).thenReturn(socket);
+ Mockito.when(detachedSocketFactory.create(Mockito.any(), Mockito.any())).thenReturn(socket);
mgr.connect(endpoint1, null, context);
Mockito.verify(dnsResolver, Mockito.times(1)).resolve("someproxy", 8080);
Mockito.verify(schemePortResolver, Mockito.times(1)).resolve(proxy.getSchemeName(), proxy);
- Mockito.verify(detachedSocketFactory, Mockito.times(1)).create(null);
+ Mockito.verify(detachedSocketFactory, Mockito.times(1)).create("http", null);
Mockito.verify(socket, Mockito.times(1)).connect(new InetSocketAddress(remote, 8080), 234);
Mockito.when(conn.isOpen()).thenReturn(true);
(httpcomponents-client) 01/03: Changed sequence of arguments of the new `#processChallenge` method in AuthScheme
Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit aa00c6c0740a3ec21da16ec1f2d72381ac5cf771
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Sun Feb 9 16:48:20 2025 +0100
Changed sequence of arguments of the new `#processChallenge` method in AuthScheme
---
.../src/main/java/org/apache/hc/client5/http/auth/AuthScheme.java | 6 +++---
.../org/apache/hc/client5/http/impl/auth/AuthenticationHandler.java | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScheme.java b/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScheme.java
index 139374335..8151a00c0 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScheme.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/auth/AuthScheme.java
@@ -150,9 +150,9 @@ default boolean isChallengeExpected() {
* must be called with a null {@link AuthChallenge} so that the scheme can handle this situation.
*
* @param host HTTP host
+ * @param challenged true if the response was unauthorised (401/407)
* @param authChallenge the auth challenge or null if no challenge was received
* @param context HTTP context
- * @param challenged true if the response was unauthorised (401/407)
*
* @throws MalformedChallengeException in case the auth challenge is incomplete,
* @throws AuthenticationException in case the authentication process is unsuccessful.
@@ -161,9 +161,9 @@ default boolean isChallengeExpected() {
*/
default void processChallenge(
HttpHost host,
+ boolean challenged,
AuthChallenge authChallenge,
- HttpContext context,
- boolean challenged) throws MalformedChallengeException, AuthenticationException {
+ HttpContext context) throws MalformedChallengeException, AuthenticationException {
processChallenge(authChallenge, context);
}
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/AuthenticationHandler.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/AuthenticationHandler.java
index 22687e1cc..8d38ec8e7 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/AuthenticationHandler.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/auth/AuthenticationHandler.java
@@ -283,7 +283,7 @@ public boolean handleResponse(
LOG.debug("{} Processing authentication challenge {}", exchangeId, challenge);
}
try {
- authScheme.processChallenge(host, challenge, clientContext, challenged);
+ authScheme.processChallenge(host, challenged, challenge, clientContext);
} catch (final AuthenticationException | MalformedChallengeException ex) {
if (LOG.isWarnEnabled()) {
LOG.warn("Exception processing challenge {}", exchangeId, ex);
@@ -340,7 +340,7 @@ public boolean handleResponse(
try {
final String schemeName = authScheme.getName();
final AuthChallenge challenge = challengeMap.get(schemeName.toLowerCase(Locale.ROOT));
- authScheme.processChallenge(host, challenge, clientContext, challenged);
+ authScheme.processChallenge(host, challenged, challenge, clientContext);
if (authScheme.isResponseReady(host, credsProvider, clientContext)) {
authOptions.add(authScheme);
}