修复password_min_length设置为999失败
This commit is contained in:
@ -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;
|
||||
}
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user