From 13e48ebc095cfc57ff6fe1e347173dedfedc4f1f Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Mon, 1 Sep 2025 09:28:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E3=80=81?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PasswordValidatorServiceImpl.java | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/PasswordValidatorServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/PasswordValidatorServiceImpl.java index a8d3f5d..407dfa1 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/PasswordValidatorServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/PasswordValidatorServiceImpl.java @@ -76,7 +76,10 @@ public class PasswordValidatorServiceImpl implements PasswordValidatorService { private boolean isPasswordCharacterValid(String password) { boolean hasUpperCase = false, hasLowerCase = false, hasDigit = false, hasSpecialChar = false; - + systemConfig.getPasswordConfig().setRequireUpperCase(true); + systemConfig.getPasswordConfig().setRequireLowerCase(true); + systemConfig.getPasswordConfig().setRequireDigit(true); + systemConfig.getPasswordConfig().setRequireSpecialChar(true); for (char c : password.toCharArray()) { if (Character.isUpperCase(c)) hasUpperCase = true; if (Character.isLowerCase(c)) hasLowerCase = true; @@ -84,10 +87,24 @@ public class PasswordValidatorServiceImpl implements PasswordValidatorService { if ("!@#$%^&*()-_=+[{]};:'\",<.>/?".indexOf(c) >= 0) hasSpecialChar = true; } - if (systemConfig.getPasswordConfig().isRequireUpperCase() && !hasUpperCase) return false; - if (systemConfig.getPasswordConfig().isRequireLowerCase() && !hasLowerCase) return false; - if (systemConfig.getPasswordConfig().isRequireDigit() && !hasDigit) return false; - return !(systemConfig.getPasswordConfig().isRequireSpecialChar() && !hasSpecialChar); + if (systemConfig.getPasswordConfig().isRequireUpperCase() && !hasUpperCase) { + systemConfig.getPasswordConfig().setRequireUpperCase(false); + return false; + }; + if (systemConfig.getPasswordConfig().isRequireLowerCase() && !hasLowerCase) { + systemConfig.getPasswordConfig().setRequireLowerCase(false); + return false; + }; + if (systemConfig.getPasswordConfig().isRequireDigit() && !hasDigit) { + systemConfig.getPasswordConfig().setRequireDigit(false); + return false; + }; + if (systemConfig.getPasswordConfig().isRequireSpecialChar() && !hasSpecialChar) { + systemConfig.getPasswordConfig().setRequireSpecialChar(false); + return false; + }; + return true; +// return !(systemConfig.getPasswordConfig().isRequireSpecialChar() && !hasSpecialChar); } private boolean containsWeakPassword(String password) { @@ -104,16 +121,20 @@ public class PasswordValidatorServiceImpl implements PasswordValidatorService { * 根据配置返回密码不符合要求时的错误提示信息 */ private String getCharacterRequirementErrorMessage() { - if (systemConfig.getPasswordConfig().isRequireUpperCase()) { + System.err.println(systemConfig.getPasswordConfig().isRequireUpperCase()); + System.err.println(systemConfig.getPasswordConfig().isRequireLowerCase()); + System.err.println(systemConfig.getPasswordConfig().isRequireDigit()); + System.err.println(systemConfig.getPasswordConfig().isRequireSpecialChar()); + if (!systemConfig.getPasswordConfig().isRequireUpperCase()) { return "密码必须包含大写字母!"; } - if (systemConfig.getPasswordConfig().isRequireLowerCase()) { + if (!systemConfig.getPasswordConfig().isRequireLowerCase()) { return "密码必须包含小写字母!"; } - if (systemConfig.getPasswordConfig().isRequireDigit()) { + if (!systemConfig.getPasswordConfig().isRequireDigit()) { return "密码必须包含数字!"; } - if (systemConfig.getPasswordConfig().isRequireSpecialChar()) { + if (!systemConfig.getPasswordConfig().isRequireSpecialChar()) { return "密码必须包含特殊字符!"; } return "密码不符合字符要求!";