diff --git a/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/DriverRegisterBo.java b/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/DriverRegisterBo.java index df61ee6..afe3abd 100644 --- a/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/DriverRegisterBo.java +++ b/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/DriverRegisterBo.java @@ -2,8 +2,10 @@ package com.hotwj.platform.driverManagement.driver.domain.bo; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; +import jakarta.validation.constraints.Pattern; 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 = "密码不能为空") - @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; /** diff --git a/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/HotDriverPasswordBo.java b/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/HotDriverPasswordBo.java index b661921..be65a34 100644 --- a/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/HotDriverPasswordBo.java +++ b/src/main/java/com/hotwj/platform/driverManagement/driver/domain/bo/HotDriverPasswordBo.java @@ -1,7 +1,10 @@ package com.hotwj.platform.driverManagement.driver.domain.bo; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.dromara.common.core.constant.RegexConstants; import java.io.Serial; import java.io.Serializable; @@ -22,5 +25,7 @@ public class HotDriverPasswordBo implements Serializable { * 新密码 */ @NotBlank(message = "新密码不能为空") + @Length(min = 8, max = 20, message = "{user.password.length.valid}") + @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") private String newPassword; } diff --git a/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerBo.java b/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerBo.java index 5fe969d..f037490 100644 --- a/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerBo.java +++ b/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerBo.java @@ -4,8 +4,10 @@ import com.hotwj.platform.resourceManagement.companySafetyManager.domain.HotComp import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.RegexConstants; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; 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; /** diff --git a/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerChangeReasonBo.java b/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerChangeReasonBo.java index 3ca2fb4..12ebcf9 100644 --- a/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerChangeReasonBo.java +++ b/src/main/java/com/hotwj/platform/resourceManagement/companySafetyManager/domain/bo/HotCompanySafetyManagerChangeReasonBo.java @@ -4,8 +4,10 @@ import com.hotwj.platform.resourceManagement.companySafetyManager.domain.HotComp import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.constant.RegexConstants; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; 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; /** diff --git a/src/main/java/com/hotwj/platform/resourceManagement/personnelConfig/domain/bo/HotPersonnelConfigBo.java b/src/main/java/com/hotwj/platform/resourceManagement/personnelConfig/domain/bo/HotPersonnelConfigBo.java index ac6ece7..fa9486a 100644 --- a/src/main/java/com/hotwj/platform/resourceManagement/personnelConfig/domain/bo/HotPersonnelConfigBo.java +++ b/src/main/java/com/hotwj/platform/resourceManagement/personnelConfig/domain/bo/HotPersonnelConfigBo.java @@ -4,8 +4,11 @@ import com.hotwj.platform.resourceManagement.personnelConfig.domain.HotPersonnel import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.Data; 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.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -66,6 +69,8 @@ public class HotPersonnelConfigBo extends BaseEntity { * 登录密码 */ @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; /** diff --git a/src/main/java/org/dromara/common/core/constant/RegexConstants.java b/src/main/java/org/dromara/common/core/constant/RegexConstants.java index c4bba7d..f5056bf 100644 --- a/src/main/java/org/dromara/common/core/constant/RegexConstants.java +++ b/src/main/java/org/dromara/common/core/constant/RegexConstants.java @@ -47,9 +47,14 @@ public interface RegexConstants extends RegexPool { 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表示停用) diff --git a/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java b/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java index 02aef82..282fc33 100644 --- a/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java +++ b/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java @@ -1,9 +1,11 @@ package org.dromara.common.core.domain.model; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; import lombok.Data; import lombok.EqualsAndHashCode; 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}") - @Length(min = 5, max = 30, message = "{user.password.length.valid}") -// @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") + @Length(min = 8, max = 20, message = "{user.password.length.valid}") + @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") private String password; /** diff --git a/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java b/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java index a6ba3d0..1a88228 100644 --- a/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java +++ b/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java @@ -40,7 +40,7 @@ public class RegexPatternPoolFactory extends PatternPool { public static final Pattern ACCOUNT = get(RegexConstants.ACCOUNT); /** - * 密码:包含至少8个字符,包括大写字母、小写字母、数字和特殊字符 + * 密码:8-20位,只能包含字母、数字和符号 @ # ! _ - */ public static final Pattern PASSWORD = get(RegexConstants.PASSWORD); diff --git a/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java b/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java index 04d3cdf..26c2ab8 100644 --- a/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java +++ b/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java @@ -40,7 +40,7 @@ public class RegexValidator extends Validator { public static final Pattern ACCOUNT = RegexPatternPoolFactory.ACCOUNT; /** - * 密码:包含至少8个字符,包括大写字母、小写字母、数字和特殊字符 + * 密码:8-20位,只能包含字母、数字和符号 @ # ! _ - */ public static final Pattern PASSWORD = RegexPatternPoolFactory.PASSWORD; diff --git a/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java b/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java index 70c3a7a..cc7abcd 100644 --- a/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java +++ b/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java @@ -3,11 +3,14 @@ package org.dromara.system.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; 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 java.util.Date; @@ -62,7 +65,8 @@ public class SysTenantBo extends BaseEntity { * 密码(创建系统用户) */ @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; /** diff --git a/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java b/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java index 3cd3284..8a779d1 100644 --- a/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java +++ b/src/main/java/org/dromara/system/domain/bo/SysUserPasswordBo.java @@ -1,7 +1,10 @@ package org.dromara.system.domain.bo; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.dromara.common.core.constant.RegexConstants; import java.io.Serial; import java.io.Serializable; @@ -25,6 +28,8 @@ public class SysUserPasswordBo implements Serializable { * 新密码 */ @NotBlank(message = "新密码不能为空") + @Length(min = 8, max = 20, message = "{user.password.length.valid}") + @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") private String newPassword; /** diff --git a/src/main/java/org/dromara/web/domain/bo/SmsResetPwdBo.java b/src/main/java/org/dromara/web/domain/bo/SmsResetPwdBo.java index 244d93d..40835a2 100644 --- a/src/main/java/org/dromara/web/domain/bo/SmsResetPwdBo.java +++ b/src/main/java/org/dromara/web/domain/bo/SmsResetPwdBo.java @@ -1,7 +1,10 @@ package org.dromara.web.domain.bo; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; 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}") + @Length(min = 8, max = 20, message = "{user.password.length.valid}") + @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}") private String password; /** diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index f2777f7..674ba67 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -16,8 +16,8 @@ user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成, user.username.length.valid=账户长度必须在{min}到{max}个字符之间 user.password.not.blank=用户密码不能为空 user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 -user.password.not.valid=* 5-50个字符 -user.password.format.valid=密码必须包含大写字母、小写字母、数字和特殊字符 +user.password.not.valid=* 8-20位,只能包含字母、数字和符号 @ # ! _ - +user.password.format.valid=密码需为8-20位,只能包含字母、数字和符号 @ # ! _ - user.email.not.valid=邮箱格式错误 user.email.not.blank=邮箱不能为空 user.phonenumber.not.blank=用户手机号不能为空 diff --git a/src/main/resources/i18n/messages_en_US.properties b/src/main/resources/i18n/messages_en_US.properties index 306a48f..57d002d 100644 --- a/src/main/resources/i18n/messages_en_US.properties +++ b/src/main/resources/i18n/messages_en_US.properties @@ -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.password.not.blank=Password cannot be empty user.password.length.valid=Password length must be between {min} and {max} characters -user.password.not.valid=* 5-50 characters -user.password.format.valid=Password must contain uppercase, lowercase, digit, and special character +user.password.not.valid=* 8-20 characters and only letters, numbers, and @ # ! _ - +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.blank=Mailbox cannot be blank user.phonenumber.not.blank=Phone number cannot be blank diff --git a/src/main/resources/i18n/messages_zh_CN.properties b/src/main/resources/i18n/messages_zh_CN.properties index f2777f7..674ba67 100644 --- a/src/main/resources/i18n/messages_zh_CN.properties +++ b/src/main/resources/i18n/messages_zh_CN.properties @@ -16,8 +16,8 @@ user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成, user.username.length.valid=账户长度必须在{min}到{max}个字符之间 user.password.not.blank=用户密码不能为空 user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间 -user.password.not.valid=* 5-50个字符 -user.password.format.valid=密码必须包含大写字母、小写字母、数字和特殊字符 +user.password.not.valid=* 8-20位,只能包含字母、数字和符号 @ # ! _ - +user.password.format.valid=密码需为8-20位,只能包含字母、数字和符号 @ # ! _ - user.email.not.valid=邮箱格式错误 user.email.not.blank=邮箱不能为空 user.phonenumber.not.blank=用户手机号不能为空