From 6bdb1996c1aee7a67dd3ee6426ef00981026c47e Mon Sep 17 00:00:00 2001 From: irengrig Date: Wed, 30 Jan 2013 12:48:50 +0400 Subject: [PATCH] IDEA-99920 Proxy settings: do not ask for credentials after cancel --- .../com/intellij/util/net/CommonProxy.java | 3 ++- .../intellij/util/net/HttpConfigurable.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/util/net/CommonProxy.java b/platform/platform-api/src/com/intellij/util/net/CommonProxy.java index fc3b09ca843a..5ac72a848ff7 100644 --- a/platform/platform-api/src/com/intellij/util/net/CommonProxy.java +++ b/platform/platform-api/src/com/intellij/util/net/CommonProxy.java @@ -265,8 +265,9 @@ public class CommonProxy extends ProxySelector { return authentication; } else if (myHttpConfigurable.USE_PROXY_PAC) { LOG.debug("CommonAuthenticator.getPasswordAuthentication will return autodetected proxy"); + if (myHttpConfigurable.isGenericPasswordCanceled(host, getRequestingPort())) return null; // same but without remembering the results.. - final PasswordAuthentication password = myHttpConfigurable.getGenericPassword(getRequestingHost(), getRequestingPort()); + final PasswordAuthentication password = myHttpConfigurable.getGenericPassword(host, getRequestingPort()); if (password != null) { logAuthentication(password); return password; diff --git a/platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java b/platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java index 7d5ebfba6590..a67b6847f00a 100644 --- a/platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java +++ b/platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java @@ -62,6 +62,7 @@ public class HttpConfigurable implements PersistentStateComponent pair; + synchronized (myLock) { + pair = myGenericPasswords.get(Pair.create(host, port)); + return pair != null && pair.getFirst() == null; + } + } + + public void setGenericPasswordCanceled(final String host, final int port) { + synchronized (myLock) { + myGenericPasswords.put(Pair.create(host, port), null); + } + } + public PasswordAuthentication getGenericPassword(final String host, final int port) { final Pair pair; synchronized (myLock) { @@ -161,6 +176,8 @@ public class HttpConfigurable implements PersistentStateComponent