You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/12/13 00:43:49 UTC

svn commit: r1213498 - /maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java

Author: olamy
Date: Mon Dec 12 23:43:49 2011
New Revision: 1213498

URL: http://svn.apache.org/viewvc?rev=1213498&view=rev
Log:
[WAGON-366] support Preemptive Authentication on proxy for wagon-http.

Modified:
    maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java

Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java?rev=1213498&r1=1213497&r2=1213498&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java Mon Dec 12 23:43:49 2011
@@ -647,6 +647,30 @@ public abstract class AbstractHttpClient
         setHeaders( httpMethod );
         client.getParams().setParameter( CoreProtocolPNames.USER_AGENT, getUserAgent( httpMethod ) );
 
+        ProxyInfo proxyInfo = getProxyInfo( getRepository().getProtocol(), getRepository().getHost() );
+
+        if ( proxyInfo != null )
+        {
+            if ( proxyInfo.getUserName() != null && proxyInfo.getPassword() != null )
+            {
+                Credentials creds;
+                if ( proxyInfo.getNtlmHost() != null || proxyInfo.getNtlmDomain() != null )
+                {
+                    creds =
+                        new NTCredentials( proxyInfo.getUserName(), proxyInfo.getPassword(), proxyInfo.getNtlmHost(),
+                                           proxyInfo.getNtlmDomain() );
+                }
+                else
+                {
+                    creds = new UsernamePasswordCredentials( proxyInfo.getUserName(), proxyInfo.getPassword() );
+                }
+
+                Header bs = new BasicScheme().authenticate( creds, httpMethod );
+                httpMethod.addHeader( "Proxy-Authorization", bs.getValue() );
+            }
+
+        }
+
         return client.execute( httpMethod, localContext );
     }