修复password_min_length设置为999失败

This commit is contained in:
z00848344
2024-09-09 19:23:18 +08:00
parent 5a8afb13ca
commit 581a095d50
2 changed files with 14 additions and 20 deletions

View File

@ -161,8 +161,6 @@ static bool check_ssl(bool* newval, void** extra, GucSource source);
/* Database Security: Support password complexity */
static bool check_int_parameter(int* newval, void** extra, GucSource source);
static bool check_ssl_ciphers(char** newval, void** extra, GucSource source);
static bool check_password_min_length(int* newval, void** extra, GucSource source);
static bool check_password_max_length(int* newval, void** extra, GucSource source);
static void InitSecurityConfigureNamesBool();
static void InitSecurityConfigureNamesInt();
@ -627,7 +625,7 @@ static void InitSecurityConfigureNamesInt()
8,
6,
MAX_PASSWORD_LENGTH,
check_password_min_length,
check_int_parameter,
NULL,
NULL},
@ -642,7 +640,7 @@ static void InitSecurityConfigureNamesInt()
32,
6,
MAX_PASSWORD_LENGTH,
check_password_max_length,
check_int_parameter,
NULL,
NULL},
@ -1448,19 +1446,3 @@ static bool check_ssl_ciphers(char** newval, void** extra, GucSource)
pfree_ext(ciphers_list);
return true;
}
static bool check_password_min_length(int* newval, void** extra, GucSource source)
{
if (*newval >= 0 && *newval <= u_sess->attr.attr_security.Password_max_length) {
return true;
}
return false;
}
static bool check_password_max_length(int* newval, void** extra, GucSource source)
{
if (*newval >= 0 && *newval >= u_sess->attr.attr_security.Password_min_length) {
return true;
}
return false;
}

View File

@ -66,6 +66,7 @@
*/
#include "postgres.h"
#include "knl/knl_variable.h"
#include "knl/knl_guc/knl_session_attr_security.h"
#ifdef ENABLE_BBOX
#include "gs_bbox.h"
#endif
@ -3593,6 +3594,16 @@ static void CheckShareStorageConfigConflicts(void)
}
}
static void CheckPasswordLenConfigConflics(void)
{
if (u_sess->attr.attr_security.Password_min_length > u_sess->attr.attr_security.Password_max_length) {
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("password_min_length (%d) should be no more than password_max_length (%d).",
u_sess->attr.attr_security.Password_min_length,
u_sess->attr.attr_security.Password_max_length)));
}
}
/*
* Check for invalid combinations of GUC settings during starting up.
*/
@ -3656,6 +3667,7 @@ static void CheckGUCConflicts(void)
}
CheckExtremeRtoGUCConflicts();
CheckShareStorageConfigConflicts();
CheckPasswordLenConfigConflics();
#if ((defined(USE_SSL)) && (defined(USE_TASSL)))
CheckSSLConflict();
#endif