Re: Update LDAP Protocol in fe-connect.c to v3

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Andrew Jackson <andrewjackson947@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-03T13:32:49Z
Lists: pgsql-hackers

Attachments

On 22.03.25 22:22, Andrew Jackson wrote:
> Apologies, forgot to attach the patch in the prior email.
> 
> On Sat, Mar 22, 2025 at 4:10 PM Andrew Jackson 
> <andrewjackson947@gmail.com <mailto:andrewjackson947@gmail.com>> wrote:
> 
>     Currently the LDAP usage in fe-connect.c does not explicitly set the
>     protocol version to v3. This causes issues with many LDAP servers as
>     they will often require clients to use the v3 protocol and disallow
>     any use of the v2 protocol. Further the other usage of LDAP in
>     postgres (in `backend/libpq/auth.c`) uses the v3 protocol.
> 
>     This patch changes fe-connect.c so that it uses the v3 protocol
>     similar to `backend/libpq/auth.c`.
> 
>     One further note is that I do not currently see any test coverage
>     over the LDAP functionality in `fe-connect.c`. I am happy to add
>     that to this patch if needed.

Here is a slightly polished version of this patch.  I added an error 
message, and changed the return code, but it's a bit confusing which one 
might be the right one.

I also looked over the test file that you sent in a separate message. 
That also looks generally ok, but I'm not so deep into LDAP right now 
that I can give a detailed review.

My hunch right now is that we should probably take the patch that sets 
the version option and consider it for backpatching.  The patch with the 
tests can be held for detailed review later.

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add TAP tests for LDAP connection parameter lookup

  2. libpq: Set LDAP protocol version 3