Fix pg_hba_file_rules for authentication method cert
authorMagnus Hagander
Wed, 26 Jan 2022 08:52:41 +0000 (09:52 +0100)
committerMagnus Hagander
Wed, 26 Jan 2022 08:59:19 +0000 (09:59 +0100)
For authentication method cert, clientcert=verify-full is implied. But
the pg_hba_file_rules entry would incorrectly show clientcert=verify-ca.

Per bug #17354

Reported-By: Feike Steenbergen
Reviewed-By: Jonathan Katz
Backpatch-through: 12

src/backend/libpq/hba.c

index 031c460d13fca2372f890f3c9d5e46f13836306b..d9a60843470acafc446e11bd57f913f8d07470e5 100644 (file)
@@ -1632,7 +1632,11 @@ parse_hba_line(TokenizedLine *tok_line, int elevel)
     */
    if (parsedline->auth_method == uaCert)
    {
-       parsedline->clientcert = clientCertCA;
+       /*
+        * For auth method cert, client certificate validation is mandatory, and it implies
+        * the level of verify-full.
+        */
+       parsedline->clientcert = clientCertFull;
    }
 
    return parsedline;