RFR: 8275535: Retrying a failed authentication on multiple LDAP servers can lead to users blocked
Aleksei Efimov
aefimov at openjdk.java.net
Wed Nov 10 13:01:36 UTC 2021
On Wed, 20 Oct 2021 13:35:22 GMT, Martin Balao <mbalao at openjdk.org> wrote:
> I'd like to propose a fix for JDK-8275535. This fix reverts the behavior to the state previous to JDK-8160768, where an authentication failure stops from trying other LDAP servers with the same credentials [1]. After JDK-8160768 we have 2 possible loops to stop: the one that iterates over different URLs and the one that iterates over different endpoints (after a DNS query that returns multiple values).
>
> No test regressions observed in jdk/com/sun/jndi/ldap.
>
> --
> [1] - https://hg.openjdk.java.net/jdk/jdk/rev/a609d549992a#l2.137
Hi Martin,
The change looks reasonable to me.
I would suggest having a CSR logged for this change due to the following [behavioral incompatibility](https://wiki.openjdk.java.net/display/csr/Kinds+of+Compatibility):
Before the change - all available endpoints/URLs are tried to create an LDAP context.
With the proposed change - incorrect credentials will prevent other endpoints to be exercised to create an LDAP context.
Having a CSR will also help to document difference in handling `AuthenticationException` and `NamingException` during construction of an LDAP context from the list of endpoints acquired from a LDAP DNS provider.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6043
More information about the core-libs-dev
mailing list