mirror of
https://github.com/postgres/postgres.git
synced 2025-05-09 18:21:05 +03:00
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
This commit is contained in:
parent
071d13395c
commit
bd05ad8b05
@ -172,6 +172,8 @@ extern bool Db_user_namespace;
|
|||||||
#define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */
|
#define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */
|
||||||
#define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */
|
#define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */
|
||||||
#define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */
|
#define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */
|
||||||
|
#define AUTH_REQ_SASL 10 /* SASL authentication. Not supported before
|
||||||
|
* libpq version 10. */
|
||||||
|
|
||||||
typedef uint32 AuthRequest;
|
typedef uint32 AuthRequest;
|
||||||
|
|
||||||
|
@ -703,6 +703,19 @@ pg_fe_sendauth(AuthRequest areq, PGconn *conn)
|
|||||||
return STATUS_ERROR;
|
return STATUS_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SASL authentication was introduced in version 10. Older
|
||||||
|
* versions recognize the request only to give a nicer error
|
||||||
|
* message. We call it "SCRAM authentication" in the error, rather
|
||||||
|
* than SASL, because SCRAM is more familiar to users, and it's
|
||||||
|
* the only SASL authentication mechanism that has been
|
||||||
|
* implemented as of this writing, anyway.
|
||||||
|
*/
|
||||||
|
case AUTH_REQ_SASL:
|
||||||
|
printfPQExpBuffer(&conn->errorMessage,
|
||||||
|
libpq_gettext("SCRAM authentication requires libpq version 10 or above\n"));
|
||||||
|
return STATUS_ERROR;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printfPQExpBuffer(&conn->errorMessage,
|
printfPQExpBuffer(&conn->errorMessage,
|
||||||
libpq_gettext("authentication method %u not supported\n"), areq);
|
libpq_gettext("authentication method %u not supported\n"), areq);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user