From 624c969f4da9a5ec904693621eaf38a48cc00cd6 Mon Sep 17 00:00:00 2001 From: mguessan Date: Mon, 27 Jul 2009 08:55:05 +0000 Subject: [PATCH] Experimental: reenable NTLM authentication git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@632 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- .../http/DavGatewayHttpClientFacade.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/java/davmail/http/DavGatewayHttpClientFacade.java b/src/java/davmail/http/DavGatewayHttpClientFacade.java index 04fdf89d..9ca46de6 100644 --- a/src/java/davmail/http/DavGatewayHttpClientFacade.java +++ b/src/java/davmail/http/DavGatewayHttpClientFacade.java @@ -79,11 +79,20 @@ public final class DavGatewayHttpClientFacade { httpClient.getParams().setParameter(HttpClientParams.MAX_REDIRECTS, MAX_REDIRECTS); HostConfiguration hostConfig = httpClient.getHostConfiguration(); hostConfig.setHost(httpURL); - UsernamePasswordCredentials hostCredentials = - new UsernamePasswordCredentials(httpURL.getUser(), - httpURL.getPassword()); - httpClient.getState().setCredentials(new AuthScope(httpURL.getHost(), httpURL.getPort(), AuthScope.ANY_REALM), - hostCredentials); + String userName = httpURL.getUser(); + String password = httpURL.getPassword(); + AuthScope authScope = new AuthScope(httpURL.getHost(), httpURL.getPort(), AuthScope.ANY_REALM); + // detect ntlm authentication (windows domain name in user name) + int backslashindex = userName.indexOf('\\'); + if (backslashindex > 0) { + httpClient.getState().setCredentials(authScope, + new NTCredentials(userName.substring(backslashindex + 1), + password, httpURL.getHost(), + userName.substring(0, backslashindex))); + } else { + httpClient.getState().setCredentials(authScope, + new UsernamePasswordCredentials(userName, password)); + } configureClient(httpClient); return httpClient; } @@ -96,12 +105,6 @@ public final class DavGatewayHttpClientFacade { public static void configureClient(HttpClient httpClient) { httpClient.setHttpConnectionManager(multiThreadedHttpConnectionManager); - ArrayList authPrefs = new ArrayList(); - authPrefs.add(AuthPolicy.DIGEST); - authPrefs.add(AuthPolicy.BASIC); - // exclude the NTLM authentication scheme - httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs); - boolean enableProxy = Settings.getBooleanProperty("davmail.enableProxy"); String proxyHost = null; int proxyPort = 0;