feat/TS-5927-long-password-invalid-pass-check
This commit is contained in:
parent
55e12e520b
commit
58b7a6fe97
|
@ -104,10 +104,12 @@ static bool invalidPassword(const char* pPassword) {
|
||||||
/* Execute regular expression */
|
/* Execute regular expression */
|
||||||
int32_t res = regexec(®ex, pPassword, 0, NULL, 0);
|
int32_t res = regexec(®ex, pPassword, 0, NULL, 0);
|
||||||
regfree(®ex);
|
regfree(®ex);
|
||||||
if(0 != res) return false;
|
return 0 == res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool invalidStrongPassword(const char* pPassword) {
|
||||||
if (strcmp(pPassword, "taosdata") == 0) {
|
if (strcmp(pPassword, "taosdata") == 0) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool charTypes[4] = {0};
|
bool charTypes[4] = {0};
|
||||||
|
@ -121,7 +123,7 @@ static bool invalidPassword(const char* pPassword) {
|
||||||
} else if (taosIsSpecialChar(pPassword[i])) {
|
} else if (taosIsSpecialChar(pPassword[i])) {
|
||||||
charTypes[3] = true;
|
charTypes[3] = true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,10 +133,10 @@ static bool invalidPassword(const char* pPassword) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numOfTypes < 3) {
|
if (numOfTypes < 3) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool checkPassword(SAstCreateContext* pCxt, const SToken* pPasswordToken, char* pPassword) {
|
static bool checkPassword(SAstCreateContext* pCxt, const SToken* pPasswordToken, char* pPassword) {
|
||||||
|
@ -147,8 +149,16 @@ static bool checkPassword(SAstCreateContext* pCxt, const SToken* pPasswordToken,
|
||||||
(void)strdequote(pPassword);
|
(void)strdequote(pPassword);
|
||||||
if (strtrim(pPassword) < TSDB_PASSWORD_MIN_LEN) {
|
if (strtrim(pPassword) < TSDB_PASSWORD_MIN_LEN) {
|
||||||
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_PASSWD_TOO_SHORT_OR_EMPTY);
|
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_PASSWD_TOO_SHORT_OR_EMPTY);
|
||||||
} else if (invalidPassword(pPassword)) {
|
} else {
|
||||||
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_PASSWD);
|
if (tsEnableStrongPassword) {
|
||||||
|
if (invalidStrongPassword(pPassword)) {
|
||||||
|
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_PASSWD);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (invalidPassword(pPassword)) {
|
||||||
|
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_PASSWD);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TSDB_CODE_SUCCESS == pCxt->errCode;
|
return TSDB_CODE_SUCCESS == pCxt->errCode;
|
||||||
|
|
|
@ -27,11 +27,11 @@ class TDTestCase(TBase):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
# strong
|
# strong
|
||||||
tdSql.error("create user test pass '12345678' sysinfo 0;", expectErrInfo="Invalid password format")
|
tdSql.error("create user test pass '12345678' sysinfo 0;", expectErrInfo="Invalid password")
|
||||||
|
|
||||||
tdSql.execute("create user test pass '12345678@Abc' sysinfo 0;")
|
tdSql.execute("create user test pass '12345678@Abc' sysinfo 0;")
|
||||||
|
|
||||||
tdSql.error("alter user test pass '23456789'", expectErrInfo="Invalid password format")
|
tdSql.error("alter user test pass '23456789'", expectErrInfo="Invalid password")
|
||||||
|
|
||||||
tdSql.execute("alter user test pass '23456789@Abc';")
|
tdSql.execute("alter user test pass '23456789@Abc';")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue