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