From 29e3eff3b173635fec87c14df185c919cdde7259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20T=C3=A2che?= Date: Wed, 1 Nov 2023 12:15:45 +0100 Subject: [PATCH] AXIS2-6055: Enables preemptive authentication --- .../http/impl/httpclient4/RequestImpl.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java index 96502c70da..0c14e88eaa 100644 --- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java +++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java @@ -46,6 +46,7 @@ import org.apache.http.auth.Credentials; import org.apache.http.auth.NTCredentials; import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.AuthCache; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; @@ -53,6 +54,8 @@ import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.params.AuthPolicy; import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.impl.auth.BasicScheme; +import org.apache.http.impl.client.BasicAuthCache; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.util.EntityUtils; @@ -314,5 +317,15 @@ public void enableAuthentication(HTTPAuthenticator authenticator) { } requestConfig.setTargetPreferredAuthSchemes(authPrefs); } + + if (authenticator.getPreemptiveAuthentication() && host != null) { + //Use authCache - could also set header + AuthCache authCache = clientContext.getAuthCache(); + if (authCache == null) { + authCache = new BasicAuthCache(); + } + authCache.put(new HttpHost(host), new BasicScheme()); + clientContext.setAuthCache(authCache); + } } }