8048035: Ensure proper proxy protocols
Reviewed-by: alanb, chegar
This commit is contained in:
parent
6888358c94
commit
4ed0514033
@ -337,6 +337,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
/* try auth without calling Authenticator. Used for transparent NTLM authentication */
|
||||
private boolean tryTransparentNTLMServer = true;
|
||||
private boolean tryTransparentNTLMProxy = true;
|
||||
private boolean useProxyResponseCode = false;
|
||||
|
||||
/* Used by Windows specific code */
|
||||
private Object authObj;
|
||||
@ -2239,6 +2240,15 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
if (tryTransparentNTLMProxy) {
|
||||
tryTransparentNTLMProxy =
|
||||
NTLMAuthenticationProxy.supportsTransparentAuth;
|
||||
/* If the platform supports transparent authentication
|
||||
* then normally it's ok to do transparent auth to a proxy
|
||||
* because we generally trust proxies (chosen by the user)
|
||||
* But not in the case of 305 response where the server
|
||||
* chose it. */
|
||||
if (tryTransparentNTLMProxy && useProxyResponseCode) {
|
||||
tryTransparentNTLMProxy = false;
|
||||
}
|
||||
|
||||
}
|
||||
a = null;
|
||||
if (tryTransparentNTLMProxy) {
|
||||
@ -2610,6 +2620,10 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
requests.set(0, method + " " + getRequestURI()+" " +
|
||||
httpVersion, null);
|
||||
connected = true;
|
||||
// need to remember this in case NTLM proxy authentication gets
|
||||
// used. We can't use transparent authentication when user
|
||||
// doesn't know about proxy.
|
||||
useProxyResponseCode = true;
|
||||
} else {
|
||||
// maintain previous headers, just change the name
|
||||
// of the file we're getting
|
||||
|
Loading…
Reference in New Issue
Block a user