This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 079389915b4 camel-http - NTLM authentication doesn't work over http 
(#18170)
079389915b4 is described below

commit 079389915b4fff73bbf1ec431d37a9597ab3c400
Author: Bruno Gonçalves <brun...@gmail.com>
AuthorDate: Sat May 24 07:29:00 2025 +0100

    camel-http - NTLM authentication doesn't work over http (#18170)
    
    Set NTLM as preferred scheme
---
 .../http/BasicAuthenticationHttpClientConfigurer.java   | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-http/src/main/java/org/apache/camel/component/http/BasicAuthenticationHttpClientConfigurer.java
 
b/components/camel-http/src/main/java/org/apache/camel/component/http/BasicAuthenticationHttpClientConfigurer.java
index 6798dbb88e0..6a719327ea8 100644
--- 
a/components/camel-http/src/main/java/org/apache/camel/component/http/BasicAuthenticationHttpClientConfigurer.java
+++ 
b/components/camel-http/src/main/java/org/apache/camel/component/http/BasicAuthenticationHttpClientConfigurer.java
@@ -16,12 +16,15 @@
  */
 package org.apache.camel.component.http;
 
+import java.util.List;
+
 import org.apache.hc.client5.http.auth.AuthSchemeFactory;
 import org.apache.hc.client5.http.auth.BearerToken;
 import org.apache.hc.client5.http.auth.Credentials;
 import org.apache.hc.client5.http.auth.NTCredentials;
 import org.apache.hc.client5.http.auth.StandardAuthScheme;
 import org.apache.hc.client5.http.auth.UsernamePasswordCredentials;
+import org.apache.hc.client5.http.config.RequestConfig;
 import org.apache.hc.client5.http.impl.auth.BasicSchemeFactory;
 import org.apache.hc.client5.http.impl.auth.BearerSchemeFactory;
 import org.apache.hc.client5.http.impl.auth.DigestSchemeFactory;
@@ -53,13 +56,23 @@ public class BasicAuthenticationHttpClientConfigurer 
implements HttpClientConfig
         if (domain != null) {
             defaultcreds = new NTCredentials(username, password, host, domain);
             // NTLM is not included by default so we need to rebuild the 
registry to include NTLM
-            var copy = RegistryBuilder.<AuthSchemeFactory> create()
+            var autoSchemes = RegistryBuilder.<AuthSchemeFactory> create()
                     .register(StandardAuthScheme.BASIC, 
BasicSchemeFactory.INSTANCE)
                     .register(StandardAuthScheme.DIGEST, 
DigestSchemeFactory.INSTANCE)
                     .register(StandardAuthScheme.BEARER, 
BearerSchemeFactory.INSTANCE)
                     .register(StandardAuthScheme.NTLM, 
NTLMSchemeFactory.INSTANCE)
                     .build();
-            clientBuilder.setDefaultAuthSchemeRegistry(copy);
+
+            // Set NTLM as preferred scheme
+            RequestConfig requestConfig = RequestConfig.custom()
+                    
.setTargetPreferredAuthSchemes(List.of(StandardAuthScheme.NTLM))
+                    .build();
+
+            clientBuilder
+                    .setDefaultAuthSchemeRegistry(autoSchemes)
+                    .setDefaultRequestConfig(requestConfig);
+
+            clientBuilder.setDefaultAuthSchemeRegistry(autoSchemes);
         } else if (bearerToken != null) {
             defaultcreds = new BearerToken(bearerToken);
         } else {

Reply via email to