Class PasswordStrengthValidator
java.lang.Object
cn.dinodev.spring.commons.validation.validator.PasswordStrengthValidator
- All Implemented Interfaces:
jakarta.validation.ConstraintValidator<PasswordStrength,String>
public class PasswordStrengthValidator
extends Object
implements jakarta.validation.ConstraintValidator<PasswordStrength,String>
密码强度校验器
该校验器用于验证密码是否符合指定的强度要求,支持以下几种验证模式:
- NUMERIC - 仅包含数字
- NUMERIC_SPECIAL_CHARACTER - 包含数字和特殊字符
- LETTER - 包含字母(可指定大小写要求)
- NUMERIC_LETTER - 包含数字和字母
- LETTER_SPECIAL_CHARACTER - 包含字母和特殊字符
- NUMERIC_LETTER_SPECIAL_CHARACTER - 包含数字、字母和特殊字符
对于字母类型,可以进一步指定:
- ANY - 任意大小写字母
- LOWER - 仅小写字母
- UPPER - 仅大写字母
- BOTH - 同时包含大小写字母
特殊字符包括:)!@#$%^invalid input: '&'*()
- Since:
- 2022-04-01
- Author:
- Cody Lu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidinitialize(PasswordStrength constraintAnnotation) 初始化校验器,根据注解配置确定密码强度检查规则boolean验证密码是否符合强度要求
-
Constructor Details
-
PasswordStrengthValidator
public PasswordStrengthValidator()
-
-
Method Details
-
initialize
初始化校验器,根据注解配置确定密码强度检查规则- Specified by:
initializein interfacejakarta.validation.ConstraintValidator<PasswordStrength,String> - Parameters:
constraintAnnotation- 密码强度约束注解
-
isValid
验证密码是否符合强度要求验证逻辑:
- 如果密码为空或空白,则视为有效(可由其他注解如@NotBlank处理非空验证)
- 遍历密码中的每个字符,检查是否满足所有配置的检查规则
- 只有当密码包含所有要求的字符类型时,才视为有效
- Specified by:
isValidin interfacejakarta.validation.ConstraintValidator<PasswordStrength,String> - Parameters:
value- 待验证的密码字符串context- 约束验证上下文- Returns:
- true 如果密码符合强度要求,false 否则
-