On Tue, Apr 23, 2024 at 10:43 AM Robert Haas <robertmh...@gmail.com> wrote:
> I've not followed this thread closely enough to understand the comment
> about requiredirect maybe not actually requiring direct, but if that
> were true it seems like it might be concerning.

It may be my misunderstanding. This seems to imply bad behavior:

> If the server rejects GSS encryption, SSL is
> negotiated over the same TCP connection using the traditional postgres
> protocol, regardless of <literal>sslnegotiation</literal>.

As does this comment:

> +   /*
> +    * If enabled, try direct SSL. Unless we have a valid TCP connection that
> +    * failed negotiating GSSAPI encryption or a plaintext connection in case
> +    * of sslmode='allow'; in that case we prefer to reuse the connection with
> +    * negotiated SSL, instead of reconnecting to do direct SSL. The point of
> +    * direct SSL is to avoid the roundtrip from the negotiation, but
> +    * reconnecting would also incur a roundtrip.
> +    */

but when I actually try those cases, I see that requiredirect does
actually cause a direct SSL connection to be done, even with
sslmode=allow. So maybe it's just misleading documentation (or my
misreading of it) that needs to be expanded? Am I missing a different
corner case where requiredirect is ignored, Heikki?

I still question the utility of allowing sslmode=allow with
sslnegotiation=requiredirect, because it seems like you've made both
the performance and security characteristics actively worse if you
choose that combination. But I want to make sure I understand the
current behavior correctly before I derail the discussion too much...

Thanks,
--Jacob


Reply via email to