--- src/java/org/apache/commons/httpclient/auth/DigestScheme.java 2005-06-25 18:32:45.000000000 -0400 +++ src/java/org/apache/commons/httpclient/auth/DigestScheme.java.orig 2005-10-05 12:54:57.000000000 -0400 @@ -29,12 +29,15 @@ package org.apache.commons.httpclient.auth; +import java.net.MalformedURLException; +import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; +import org.apache.commons.httpclient.ConnectMethod; import org.apache.commons.httpclient.Credentials; import org.apache.commons.httpclient.HttpClientError; import org.apache.commons.httpclient.HttpMethod; @@ -306,6 +309,25 @@ } getParameters().put("methodname", method.getName()); getParameters().put("uri", method.getPath()); + if (method instanceof ConnectMethod) { + AuthState proxyAuthState = method.getProxyAuthState(); + AuthState hostAuthState = method.getHostAuthState(); + if (proxyAuthState.isAuthRequested() && !hostAuthState.isAuthRequested()) { + try { + URL hostUrl = new URL(method.getHostConfiguration().getHostURL()); + String uri = hostUrl.getHost(); + if(hostUrl.getPort() > 0) { + uri += ":"+hostUrl.getPort(); + } else if("https".equals(hostUrl.getProtocol())) { + uri += ":"+443; + } + getParameters().put("uri", uri); + } catch (MalformedURLException e) { + throw new AuthenticationException(e.getMessage()); + } + } + } + String charset = getParameter("charset"); if (charset == null) { getParameters().put("charset", method.getParams().getCredentialCharset()); --- src/java/org/apache/commons/httpclient/HttpMethodDirector.java 2005-06-25 18:32:45.000000000 -0400 +++ src/java/org/apache/commons/httpclient/HttpMethodDirector.java.orig 2005-10-05 12:58:56.000000000 -0400 @@ -469,6 +469,7 @@ throws IOException, HttpException { this.connectMethod = new ConnectMethod(); + this.connectMethod.setHostConfiguration(hostConfiguration); this.connectMethod.getParams().setDefaults(this.hostConfiguration.getParams()); int code;