diff --git a/WHATSNEW b/WHATSNEW index 1ac7e1401..e4fc60a90 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -218,6 +218,9 @@ Fixed bugs: * using didn't work with OpenSSH 3.9 and later. Bugzilla report 31939 +* failed to set user/password on some JDKs. + Bugzilla report 32667 + Changes from Ant 1.6.1 to Ant 1.6.2 =================================== diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/SetProxy.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/SetProxy.java index ea4506f99..6d70c472d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/net/SetProxy.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/SetProxy.java @@ -18,6 +18,8 @@ package org.apache.tools.ant.taskdefs.optional.net; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.net.Authenticator; +import java.net.PasswordAuthentication; import java.util.Properties; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; @@ -229,6 +231,15 @@ public class SetProxy extends Task { sysprops.remove("java.net.socks.password"); } } + + if (proxyUser != null) { + if (enablingProxy) { + Authenticator.setDefault(new ProxyAuth(proxyUser, + proxyPassword)); + } else if (settingsChanged) { + Authenticator.setDefault(new ProxyAuth("", "")); + } + } } /** @@ -250,5 +261,19 @@ public class SetProxy extends Task { applyWebProxySettings(); } + /** + * @since 1.6.3 + */ + private static final class ProxyAuth extends Authenticator { + private PasswordAuthentication auth; + + private ProxyAuth(String user, String pass) { + auth = new PasswordAuthentication(user, pass.toCharArray()); + } + + protected PasswordAuthentication getPasswordAuthentication() { + return auth; + } + } }