From 27042bbc4ac0b1c85f5b75fa196121d41aa01a18 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Tue, 14 Jul 2009 03:55:43 +0000 Subject: [PATCH] [FIXED HUDSON-1920] Applied a patch. In 1.316. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@19683 71c3de6d-444a-0410-be80-ed276b4c234a --- .../main/java/hudson/ProxyConfiguration.java | 27 ++++++++++++++----- .../hudson/PluginManager/advanced.jelly | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index 8b951c80d7..b6baa4d54b 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -23,25 +23,34 @@ */ package hudson; -import com.thoughtworks.xstream.XStream; import hudson.model.Hudson; import hudson.model.Saveable; -import hudson.util.XStream2; import hudson.util.Scrambler; +import hudson.util.XStream2; import java.io.File; import java.io.IOException; +import java.net.Authenticator; import java.net.InetSocketAddress; +import java.net.PasswordAuthentication; import java.net.Proxy; -import java.net.URLConnection; import java.net.URL; +import java.net.URLConnection; + +import com.thoughtworks.xstream.XStream; /** * HTTP proxy configuration. * *

* Use {@link #open(URL)} to open a connection with the proxy setting. - * + *

+ * Proxy authentication (including NTLM) is implemented by setting a default + * {@link Authenticator} which provides a {@link PasswordAuthentication} + * (as described in the Java 6 tech note + * + * Http Authentication). + * * @see Hudson#proxy */ public final class ProxyConfiguration implements Saveable { @@ -101,8 +110,14 @@ public final class ProxyConfiguration implements Saveable { URLConnection con = url.openConnection(p.createProxy()); if(p.getUserName()!=null) { - con.setRequestProperty("Proxy-Authorization","Basic "+ - Scrambler.scramble(p.getUserName()+':'+p.getPassword())); + // Add an authenticator which provides the credentials for proxy authentication + Authenticator.setDefault(new Authenticator() { + public PasswordAuthentication getPasswordAuthentication() { + ProxyConfiguration p = Hudson.getInstance().proxy; + return new PasswordAuthentication(p.getUserName(), + p.getPassword().toCharArray()); + } + }); } return con; } diff --git a/core/src/main/resources/hudson/PluginManager/advanced.jelly b/core/src/main/resources/hudson/PluginManager/advanced.jelly index a328198fd2..b3fdee5455 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.jelly +++ b/core/src/main/resources/hudson/PluginManager/advanced.jelly @@ -45,7 +45,7 @@ THE SOFTWARE. - +