summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2022-08-08 17:12:32 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2022-08-08 17:12:32 +0200
commit1d480419822b53c840de54542c1d1a0851dbe2c8 (patch)
tree629aabba2d52741b4075c3e345396bd989516cb2 /plugin
parent3ebbfd88a0360938e3a5a480265beb2a71b1268a (diff)
parent4f54c219e7c73072d7eff1e81e0f51dc1ff47509 (diff)
downloadmariadb-git-1d480419822b53c840de54542c1d1a0851dbe2c8.tar.gz
Merge branch '10.6' into 10.7
Diffstat (limited to 'plugin')
-rw-r--r--plugin/simple_password_check/simple_password_check.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugin/simple_password_check/simple_password_check.c b/plugin/simple_password_check/simple_password_check.c
index e9d852d54ab..929906c6afe 100644
--- a/plugin/simple_password_check/simple_password_check.c
+++ b/plugin/simple_password_check/simple_password_check.c
@@ -31,7 +31,13 @@ static int validate(const MYSQL_CONST_LEX_STRING *username,
const char *ptr= password->str, *end= ptr + length;
if (strncmp(password->str, username->str, length) == 0)
+ {
+ // warning used to do not change error code
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: The password equal to the user name",
+ ME_WARNING);
return 1;
+ }
/* everything non-ascii is the "other" character and is good for the password */
for(; ptr < end; ptr++)
@@ -45,6 +51,28 @@ static int validate(const MYSQL_CONST_LEX_STRING *username,
else
others++;
}
+
+ // warnings used to do not change error code
+ if (length < min_length)
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: Too short password (< %u)",
+ ME_WARNING, min_length);
+ if (uppers < min_letters)
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: Not enough upper case "
+ "letters (< %u)",ME_WARNING, min_letters);
+ if (lowers < min_letters)
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: Not enough lower case "
+ "letters (< %u)",ME_WARNING, min_letters);
+ if (digits < min_digits)
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: Not enough digits (< %u)",
+ ME_WARNING, min_digits);
+ if (others < min_others)
+ my_printf_error(ER_NOT_VALID_PASSWORD,
+ "simple_password_check: Not enough special "
+ "characters (< %u)",ME_WARNING, min_others);
/* remember TRUE means the password failed the validation */
return length < min_length ||
uppers < min_letters ||