Skip to content

Commit bd05ad8

Browse files
committed
Give nicer error message when connecting to a v10 server requiring SCRAM.
This is just to give the user a hint that they need to upgrade, if they try to connect to a v10 server that uses SCRAM authentication, with an older client. Commit to all stable branches, but not master. Discussion: https://www.postgresql.org/message-id/bbf45d92-3896-eeb7-7399-2111d517261b@pivotal.io
1 parent 071d133 commit bd05ad8

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/include/libpq/pqcomm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ extern bool Db_user_namespace;
172172
#define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */
173173
#define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */
174174
#define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */
175+
#define AUTH_REQ_SASL 10 /* SASL authentication. Not supported before
176+
* libpq version 10. */
175177

176178
typedef uint32 AuthRequest;
177179

src/interfaces/libpq/fe-auth.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,19 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
703703
return STATUS_ERROR;
704704
break;
705705

706+
/*
707+
* SASL authentication was introduced in version 10. Older
708+
* versions recognize the request only to give a nicer error
709+
* message. We call it "SCRAM authentication" in the error, rather
710+
* than SASL, because SCRAM is more familiar to users, and it's
711+
* the only SASL authentication mechanism that has been
712+
* implemented as of this writing, anyway.
713+
*/
714+
case AUTH_REQ_SASL:
715+
printfPQExpBuffer(&conn->errorMessage,
716+
libpq_gettext("SCRAM authentication requires libpq version 10 or above\n"));
717+
return STATUS_ERROR;
718+
706719
default:
707720
printfPQExpBuffer(&conn->errorMessage,
708721
libpq_gettext("authentication method %u not supported\n"), areq);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy