密码规则统一 密码需为8-20位,只能包含字母、数字和符号 @ # ! _ -

This commit is contained in:
2026-05-15 11:14:52 +08:00
parent ebe1ef8309
commit f890400112
15 changed files with 55 additions and 15 deletions

View File

@@ -2,8 +2,10 @@ package com.hotwj.platform.driverManagement.driver.domain.bo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
/** /**
* 驾驶员邀请码注册业务对象 * 驾驶员邀请码注册业务对象
@@ -21,7 +23,8 @@ public class DriverRegisterBo {
* 密码 * 密码
*/ */
@NotBlank(message = "密码不能为空") @NotBlank(message = "密码不能为空")
@Size(min = 6, message = "密码长度不能低于6位") @Length(min = 8, max = 20, message = "{user.password.length.valid}")
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}")
private String password; private String password;
/** /**

View File

@@ -1,7 +1,10 @@
package com.hotwj.platform.driverManagement.driver.domain.bo; package com.hotwj.platform.driverManagement.driver.domain.bo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@@ -22,5 +25,7 @@ public class HotDriverPasswordBo implements Serializable {
* 新密码 * 新密码
*/ */
@NotBlank(message = "新密码不能为空") @NotBlank(message = "新密码不能为空")
@Length(min = 8, max = 20, message = "{user.password.length.valid}")
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}")
private String newPassword; private String newPassword;
} }

View File

@@ -4,8 +4,10 @@ import com.hotwj.platform.resourceManagement.companySafetyManager.domain.HotComp
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.core.constant.RegexConstants;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.core.validate.QueryGroup; import org.dromara.common.core.validate.QueryGroup;
@@ -63,6 +65,7 @@ public class HotCompanySafetyManagerBo extends BaseEntity {
/** /**
* 登录密码 * 登录密码
*/ */
@Pattern(regexp = RegexConstants.OPTIONAL_PASSWORD, message = "{user.password.format.valid}", groups = {AddGroup.class, EditGroup.class})
private String loginPassword; private String loginPassword;
/** /**

View File

@@ -4,8 +4,10 @@ import com.hotwj.platform.resourceManagement.companySafetyManager.domain.HotComp
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.core.constant.RegexConstants;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.core.validate.QueryGroup; import org.dromara.common.core.validate.QueryGroup;
@@ -63,6 +65,7 @@ public class HotCompanySafetyManagerChangeReasonBo extends BaseEntity {
/** /**
* 登录密码 * 登录密码
*/ */
@Pattern(regexp = RegexConstants.OPTIONAL_PASSWORD, message = "{user.password.format.valid}", groups = {AddGroup.class, EditGroup.class})
private String loginPassword; private String loginPassword;
/** /**

View File

@@ -4,8 +4,11 @@ import com.hotwj.platform.resourceManagement.personnelConfig.domain.HotPersonnel
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
@@ -66,6 +69,8 @@ public class HotPersonnelConfigBo extends BaseEntity {
* 登录密码 * 登录密码
*/ */
@NotBlank(message = "登录密码不能为空", groups = {AddGroup.class, EditGroup.class}) @NotBlank(message = "登录密码不能为空", groups = {AddGroup.class, EditGroup.class})
@Length(min = 8, max = 20, message = "{user.password.length.valid}", groups = {AddGroup.class, EditGroup.class})
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}", groups = {AddGroup.class, EditGroup.class})
private String loginPassword; private String loginPassword;
/** /**

View File

@@ -47,9 +47,14 @@ public interface RegexConstants extends RegexPool {
String ACCOUNT = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; String ACCOUNT = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$";
/** /**
* 密码:包含至少8个字符包括大写字母、小写字母、数字和特殊字符 * 密码:8-20位只能包含字母、数字和符号 @ # ! _ -
*/ */
String PASSWORD = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$"; String PASSWORD = "^[A-Za-z0-9@#!_-]{8,20}$";
/**
* 可选密码:为空或符合密码规则
*/
String OPTIONAL_PASSWORD = "^$|^[A-Za-z0-9@#!_-]{8,20}$";
/** /**
* 通用状态0表示正常1表示停用 * 通用状态0表示正常1表示停用

View File

@@ -1,9 +1,11 @@
package org.dromara.common.core.domain.model; package org.dromara.common.core.domain.model;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
/** /**
* 用户注册对象 * 用户注册对象
@@ -25,8 +27,8 @@ public class RegisterBody extends LoginBody {
* 用户密码 * 用户密码
*/ */
@NotBlank(message = "{user.password.not.blank}") @NotBlank(message = "{user.password.not.blank}")
@Length(min = 5, max = 30, message = "{user.password.length.valid}") @Length(min = 8, max = 20, message = "{user.password.length.valid}")
// @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}")
private String password; private String password;
/** /**

View File

@@ -40,7 +40,7 @@ public class RegexPatternPoolFactory extends PatternPool {
public static final Pattern ACCOUNT = get(RegexConstants.ACCOUNT); public static final Pattern ACCOUNT = get(RegexConstants.ACCOUNT);
/** /**
* 密码:包含至少8个字符包括大写字母、小写字母、数字和特殊字符 * 密码:8-20位只能包含字母、数字和符号 @ # ! _ -
*/ */
public static final Pattern PASSWORD = get(RegexConstants.PASSWORD); public static final Pattern PASSWORD = get(RegexConstants.PASSWORD);

View File

@@ -40,7 +40,7 @@ public class RegexValidator extends Validator {
public static final Pattern ACCOUNT = RegexPatternPoolFactory.ACCOUNT; public static final Pattern ACCOUNT = RegexPatternPoolFactory.ACCOUNT;
/** /**
* 密码:包含至少8个字符包括大写字母、小写字母、数字和特殊字符 * 密码:8-20位只能包含字母、数字和符号 @ # ! _ -
*/ */
public static final Pattern PASSWORD = RegexPatternPoolFactory.PASSWORD; public static final Pattern PASSWORD = RegexPatternPoolFactory.PASSWORD;

View File

@@ -3,11 +3,14 @@ package org.dromara.system.domain.bo;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
import org.dromara.system.domain.SysTenant; import org.dromara.system.domain.SysTenant;
import java.util.Date; import java.util.Date;
@@ -62,7 +65,8 @@ public class SysTenantBo extends BaseEntity {
* 密码(创建系统用户) * 密码(创建系统用户)
*/ */
@NotBlank(message = "密码不能为空", groups = { AddGroup.class }) @NotBlank(message = "密码不能为空", groups = { AddGroup.class })
// @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}", groups = { AddGroup.class }) @Length(min = 8, max = 20, message = "{user.password.length.valid}", groups = { AddGroup.class })
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}", groups = { AddGroup.class })
private String password; private String password;
/** /**

View File

@@ -1,7 +1,10 @@
package org.dromara.system.domain.bo; package org.dromara.system.domain.bo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@@ -25,6 +28,8 @@ public class SysUserPasswordBo implements Serializable {
* 新密码 * 新密码
*/ */
@NotBlank(message = "新密码不能为空") @NotBlank(message = "新密码不能为空")
@Length(min = 8, max = 20, message = "{user.password.length.valid}")
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}")
private String newPassword; private String newPassword;
/** /**

View File

@@ -1,7 +1,10 @@
package org.dromara.web.domain.bo; package org.dromara.web.domain.bo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.dromara.common.core.constant.RegexConstants;
/** /**
* 短信验证码重置密码对象 * 短信验证码重置密码对象
@@ -27,6 +30,8 @@ public class SmsResetPwdBo {
* 新密码 * 新密码
*/ */
@NotBlank(message = "{user.new.password.not.blank}") @NotBlank(message = "{user.new.password.not.blank}")
@Length(min = 8, max = 20, message = "{user.password.length.valid}")
@Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}")
private String password; private String password;
/** /**

View File

@@ -16,8 +16,8 @@ user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成
user.username.length.valid=账户长度必须在{min}到{max}个字符之间 user.username.length.valid=账户长度必须在{min}到{max}个字符之间
user.password.not.blank=用户密码不能为空 user.password.not.blank=用户密码不能为空
user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
user.password.not.valid=* 5-50个字符 user.password.not.valid=* 8-20位只能包含字母、数字和符号 @ # ! _ -
user.password.format.valid=密码必须包含大写字母、小写字母、数字和特殊字符 user.password.format.valid=密码需为8-20位只能包含字母、数字和符号 @ # ! _ -
user.email.not.valid=邮箱格式错误 user.email.not.valid=邮箱格式错误
user.email.not.blank=邮箱不能为空 user.email.not.blank=邮箱不能为空
user.phonenumber.not.blank=用户手机号不能为空 user.phonenumber.not.blank=用户手机号不能为空

View File

@@ -16,8 +16,8 @@ user.username.not.valid=* 2 to 20 chinese characters, letters, numbers or unders
user.username.length.valid=Account length must be between {min} and {max} characters user.username.length.valid=Account length must be between {min} and {max} characters
user.password.not.blank=Password cannot be empty user.password.not.blank=Password cannot be empty
user.password.length.valid=Password length must be between {min} and {max} characters user.password.length.valid=Password length must be between {min} and {max} characters
user.password.not.valid=* 5-50 characters user.password.not.valid=* 8-20 characters and only letters, numbers, and @ # ! _ -
user.password.format.valid=Password must contain uppercase, lowercase, digit, and special character user.password.format.valid=Password must be 8-20 characters and can only contain letters, numbers, and @ # ! _ -
user.email.not.valid=Mailbox format error user.email.not.valid=Mailbox format error
user.email.not.blank=Mailbox cannot be blank user.email.not.blank=Mailbox cannot be blank
user.phonenumber.not.blank=Phone number cannot be blank user.phonenumber.not.blank=Phone number cannot be blank

View File

@@ -16,8 +16,8 @@ user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成
user.username.length.valid=账户长度必须在{min}到{max}个字符之间 user.username.length.valid=账户长度必须在{min}到{max}个字符之间
user.password.not.blank=用户密码不能为空 user.password.not.blank=用户密码不能为空
user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
user.password.not.valid=* 5-50个字符 user.password.not.valid=* 8-20位只能包含字母、数字和符号 @ # ! _ -
user.password.format.valid=密码必须包含大写字母、小写字母、数字和特殊字符 user.password.format.valid=密码需为8-20位只能包含字母、数字和符号 @ # ! _ -
user.email.not.valid=邮箱格式错误 user.email.not.valid=邮箱格式错误
user.email.not.blank=邮箱不能为空 user.email.not.blank=邮箱不能为空
user.phonenumber.not.blank=用户手机号不能为空 user.phonenumber.not.blank=用户手机号不能为空