Index: java/org/apache/commons/httpclient/HttpMethodBase.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v retrieving revision 1.189 diff -u -r1.189 HttpMethodBase.java --- java/org/apache/commons/httpclient/HttpMethodBase.java 5 Nov 2003 20:45:34 -0000 1.189 +++ java/org/apache/commons/httpclient/HttpMethodBase.java 8 Nov 2003 11:08:18 -0000 @@ -1154,6 +1154,14 @@ LOG.trace("enter HttpMethodBase.addCookieRequestHeader(HttpState, " + "HttpConnection)"); + Header[] cookieheaders = getRequestHeaderGroup().getHeaders("Cookie"); + for (int i = 0; i < cookieheaders.length; i++) { + Header cookieheader = cookieheaders[i]; + if (cookieheader.isAutogenerated()) { + getRequestHeaderGroup().removeHeader(cookieheader); + } + } + CookieSpec matcher = CookiePolicy.getCookieSpec(this.params.getCookiePolicy()); Cookie[] cookies = matcher.match(conn.getHost(), conn.getPort(), getPath(), conn.isSecure(), state.getCookies()); @@ -2028,7 +2036,6 @@ throws IOException, HttpException { LOG.trace("enter HttpMethodBase.writeRequestHeaders(HttpState," + "HttpConnection)"); - clearAutogeneratedHeaders(); addRequestHeaders(state, conn); Header[] headers = getRequestHeaders(); @@ -2324,16 +2331,4 @@ this.responseStream = responseStream; } - /** - * Removes all auto-generated headers - */ - protected void clearAutogeneratedHeaders() { - Iterator items = getRequestHeaderGroup().getIterator(); - while (items.hasNext()) { - Header header = (Header)items.next(); - if (header.isAutogenerated()) { - items.remove(); - } - } - } } Index: java/org/apache/commons/httpclient/HttpMethodDirector.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodDirector.java,v retrieving revision 1.7 diff -u -r1.7 HttpMethodDirector.java --- java/org/apache/commons/httpclient/HttpMethodDirector.java 22 Oct 2003 19:31:00 -0000 1.7 +++ java/org/apache/commons/httpclient/HttpMethodDirector.java 8 Nov 2003 11:08:22 -0000 @@ -562,17 +562,17 @@ realmsUsed.add(realm); } + method.removeRequestHeader(HttpAuthenticator.WWW_AUTH_RESP); + method.removeRequestHeader(HttpAuthenticator.PROXY_AUTH_RESP); try { //remove preemptive header and reauthenticate switch (statusCode) { case HttpStatus.SC_UNAUTHORIZED: - method.removeRequestHeader(HttpAuthenticator.WWW_AUTH_RESP); authenticated = HttpAuthenticator.authenticate( authscheme, method, conn, state); this.realm = authscheme.getRealm(); break; case HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED: - method.removeRequestHeader(HttpAuthenticator.PROXY_AUTH_RESP); authenticated = HttpAuthenticator.authenticateProxy( authscheme, method, conn, state); this.proxyRealm = authscheme.getRealm();