diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index e9cce587b..354514ef3 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,6 +1,10 @@ Changes since 4.3.1 ------------------- +* [HTTPCLIENT-1442] Authentication header set by the user gets removed in case + of proxy authentication (affects plan HTTP requests only). + Contributed by Oleg Kalnichevski + * [HTTPCLIENT-1441] Caching AsynchronousValidationRequest leaks connections. Contributed by Dominic Tootell diff --git a/httpclient/src/main/java/org/apache/http/impl/execchain/MainClientExec.java b/httpclient/src/main/java/org/apache/http/impl/execchain/MainClientExec.java index be8a2e0c5..7c88effe1 100644 --- a/httpclient/src/main/java/org/apache/http/impl/execchain/MainClientExec.java +++ b/httpclient/src/main/java/org/apache/http/impl/execchain/MainClientExec.java @@ -293,8 +293,13 @@ public CloseableHttpResponse execute( } } // discard previous auth headers - request.removeHeaders(AUTH.WWW_AUTH_RESP); - request.removeHeaders(AUTH.PROXY_AUTH_RESP); + final HttpRequest original = request.getOriginal(); + if (!original.containsHeader(AUTH.WWW_AUTH_RESP)) { + request.removeHeaders(AUTH.WWW_AUTH_RESP); + } + if (!original.containsHeader(AUTH.PROXY_AUTH_RESP)) { + request.removeHeaders(AUTH.PROXY_AUTH_RESP); + } } else { break; }