From 6b492db7d1457af687db307a40484f3b52bbf1a5 Mon Sep 17 00:00:00 2001
From: liuxm <liuxm@fescotech.com>
Date: 星期二, 14 五月 2024 16:20:41 +0800
Subject: [PATCH] 修改登录验证:手机号除admin 外长度必须为11

---
 pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLengthValidator.java |   22 ++++++++++++++++++++++
 pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java               |    4 +++-
 pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java               |    3 +--
 pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLength.java          |   21 +++++++++++++++++++++
 4 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLength.java b/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLength.java
new file mode 100644
index 0000000..b1bc4ba
--- /dev/null
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLength.java
@@ -0,0 +1,21 @@
+package com.dy.common.aop;
+
+import jakarta.validation.Constraint;
+import jakarta.validation.Payload;
+import java.lang.annotation.*;
+
+@Documented
+@Constraint(validatedBy = CheckLengthValidator.class)
+@Target({ElementType.FIELD, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface CheckLength {
+
+    int min() default 11;
+    int max() default 12;
+
+    String message() default "鎵嬫満鍙烽暱搴﹀繀椤绘槸11浣�";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLengthValidator.java b/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLengthValidator.java
new file mode 100644
index 0000000..746f127
--- /dev/null
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/aop/CheckLengthValidator.java
@@ -0,0 +1,22 @@
+package com.dy.common.aop;
+
+import jakarta.validation.ConstraintValidator;
+import jakarta.validation.ConstraintValidatorContext;
+
+public class CheckLengthValidator implements ConstraintValidator<CheckLength, String> {
+
+    private int min;
+    private int max;
+    @Override
+    public void initialize(CheckLength constraintAnnotation) {
+        this.min = constraintAnnotation.min();
+        this.max = constraintAnnotation.max();
+    }
+    @Override
+    public boolean isValid(String value, ConstraintValidatorContext context) {
+        if ("admin".equals(value)) {
+            return true; // 濡傛灉鏄痑dmin锛屼笉杩涜闀垮害鏍¢獙
+        }
+        return value != null && value.length() >= min && value.length() <= max;
+    }
+}
diff --git a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java
index b1b32b5..2c0c1ba 100644
--- a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java
+++ b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/LoginVo.java
@@ -1,5 +1,6 @@
 package com.dy.sso.busi;
 
+import com.dy.common.aop.CheckLength;
 import jakarta.validation.constraints.NotEmpty;
 import lombok.*;
 import org.hibernate.validator.constraints.Length;
@@ -20,7 +21,8 @@
 public class LoginVo {
     @NotEmpty(message = "鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
     //@NotNull(message = "鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓簄ull浣嗘槸鍙互涓虹┖
-    @Length(message = "鎵嬫満鍙峰繀椤粄min}浣�", min = 11, max = 11)
+//    @Length(message = "鎵嬫満鍙峰繀椤粄min}浣�", min = 11, max = 11)
+    @CheckLength(message = "鎵嬫満鍙峰繀椤粄min}浣�", min = 11, max = 11)
     public String phone ;
 
     @NotEmpty(message = "瀵嗙爜涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
diff --git a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
index 8e93c9c..9ff5572 100644
--- a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
+++ b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -53,7 +53,7 @@
      * @return 鐧诲綍鐢ㄦ埛鍊煎璞�
      */
     @PostMapping(path = "login", consumes = MediaType.APPLICATION_JSON_VALUE)//鍓嶇鎻愪氦json鏁版嵁
-    @Log("鐢ㄦ埛鐧诲綍(json)")
+    @Log("鐢ㄦ埛鐧诲綍")
     public BaseResponse<UserVo> login(@RequestBody  @Valid LoginVo vo,BindingResult bindingResult,
                                       HttpSession session) {
         try {
@@ -83,7 +83,6 @@
      * @return 鐧诲綍鐢ㄦ埛鍊煎璞�
      */
     @PostMapping(path = "loginForm", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)//鍓嶇鎻愪氦form琛ㄥ崟鏁版嵁
-    @Log("鐢ㄦ埛鐧诲綍(form)")
     public BaseResponse<UserVo> loginForm(@Valid LoginVo loginVo, BindingResult bindingResult,HttpSession session){
         try{
             if(bindingResult != null && bindingResult.hasErrors()){

--
Gitblit v1.8.0