diff --git openjdk.orig/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java openjdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java index 300f3682655..6f3eb6c450b 100644 --- openjdk.orig/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java +++ openjdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java @@ -226,6 +226,10 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor ctx = getLdapCtxFromUrl( r.getDomainName(), url, new LdapURL(u), env); return ctx; + } catch (AuthenticationException e) { + // do not retry on a different endpoint to avoid blocking + // the user if authentication credentials are wrong. + throw e; } catch (NamingException e) { // try the next element lastException = e; @@ -278,6 +282,10 @@ final public class LdapCtxFactory implements ObjectFactory, InitialContextFactor for (String u : urls) { try { return getUsingURL(u, env); + } catch (AuthenticationException e) { + // do not retry on a different URL to avoid blocking + // the user if authentication credentials are wrong. + throw e; } catch (NamingException e) { ex = e; }