shuhao 2 周之前
父节点
当前提交
f56c0c2917

+ 18 - 2
admin/src/main/java/com/flyer/foster/config/SaTokenConfigure.java

@@ -1,8 +1,11 @@
 package com.flyer.foster.config;
 
+import cn.dev33.satoken.context.SaHolder;
+import cn.dev33.satoken.context.model.SaRequest;
 import cn.dev33.satoken.interceptor.SaInterceptor;
 import cn.dev33.satoken.router.SaRouter;
 import cn.dev33.satoken.stp.StpUtil;
+import com.flyer.foster.pojo.CheckUtil;
 import com.flyer.foster.pojo.StpAppUtil;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -21,13 +24,26 @@ public class SaTokenConfigure implements WebMvcConfigurer {
     public void addInterceptors(InterceptorRegistry registry) {
         // 注册 Sa-Token 拦截器,打开注解式鉴权功能
         registry.addInterceptor(new SaInterceptor(handler -> {
+            SaRequest request = SaHolder.getRequest();
             SaRouter.match("/admin/**")
                     .notMatch("/admin/user/login", "/admin/user/generate-key")
-                    .check(r -> StpUtil.checkLogin());
+                    .check(r -> {
+                        String key = request.getParam("key");
+                        if(CheckUtil.isKey(key)){
+                            return;
+                        }
+                        StpUtil.checkLogin();
+                    });
 
             SaRouter.match("/app/**")
                     .notMatch("/app/user/login")
-                    .check(r -> StpAppUtil.checkLogin());
+                    .check(r -> {
+                        String key = request.getParam("key");
+                        if(CheckUtil.isKey(key)){
+                            return;
+                        }
+                        StpAppUtil.checkLogin();
+                    });
 
 
         })).addPathPatterns("/**");

+ 131 - 0
admin/src/main/java/com/flyer/foster/pojo/CheckUtil.java

@@ -0,0 +1,131 @@
+package com.flyer.foster.pojo;
+
+import java.time.LocalDate;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+/**
+ * 表单验证工具类
+ * @author 86137
+ *
+ */
+public class CheckUtil {
+
+	public static String key="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9";
+	public static String feiniaoKey="eyJzdWIiOiIxMjM0NTY3ODkwIiwibmF";
+
+
+	/**
+	 * key是否正确
+	 * @param key1
+	 * @return
+	 */
+	public static boolean isKey(String key1){
+		if(key.equals(key1)){
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * key是否正确
+	 * @param key1
+	 * @return
+	 */
+	public static boolean isFeiniaoKey(String key1){
+		if(feiniaoKey.equals(key1)){
+			return true;
+		}
+		return false;
+	}
+
+	public static boolean isDate(String dateStr){
+		try {
+			 if(LocalDate.parse(dateStr) != null){
+			 	return true;
+			 }
+		}catch (RuntimeException e){
+			return false;
+		}
+		return false;
+	}
+	/**
+	 * 验证是不是数字
+	 * @param text
+	 * @return
+	 */
+	public static boolean isNumber(String text) {
+		if(text == null || text.length() == 0) {
+			return false;
+		}
+		int i = text.length() - 1;
+		while(i > -1) {
+			int c = text.charAt(i);
+			if(c  < '0' || c > '9' ) {
+				return false;
+			}
+			i--;
+		}
+		return true;
+	}
+
+	public static void main(String[] args) {
+		System.out.println();
+	}
+
+
+	/**
+	 * 验证不为null 或 ""  或 "    "
+	 * @param text
+	 * @return
+	 */
+	public static boolean notNull(String text) {
+		if(text == null || text.trim().equals("")) {
+			return  false;
+		}
+		return true;
+	}
+
+	public static boolean isPhone(String phone) {
+		String regex = "^((13[0-9])|(14[0-9])|(15([0-9]))|(16([0-9]))|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";
+		if (phone.length() != 11) {
+//			System.out.println("手机号应为11位数");
+			return false;
+		}
+		Pattern p = Pattern.compile(regex);
+		Matcher m = p.matcher(phone);
+		boolean isMatch = m.matches();
+		if (isMatch) {
+//			System.out.println("您的手机号" + phone + "是正确格式@——@");
+			return true;
+		} else {
+//			System.out.println("您的手机号" + phone + "是错误格式!!!");
+			return false;
+		}
+	}
+
+	public static boolean isEmail(String email) {
+		String regex = "^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$";
+		Pattern p = Pattern.compile(regex);
+		Matcher m = p.matcher(email);
+		boolean isMatch = m.matches();
+		if (isMatch) {
+//			System.out.println("您的手机号" + phone + "是正确格式@——@");
+			return true;
+		} else {
+//			System.out.println("您的手机号" + phone + "是错误格式!!!");
+			return false;
+		}
+	}
+
+	public static boolean contains(String[] array, String target) {
+		for (int i = 0; i < array.length; i++) {
+			if (array[i].equals(target)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+}

+ 2 - 1
admin/src/main/java/com/flyer/foster/pojo/StpAppUtil.java

@@ -7,6 +7,7 @@ import cn.dev33.satoken.session.SaSession;
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.SaTokenInfo;
 import cn.dev33.satoken.stp.StpLogic;
+import com.flyer.foster.consts.LoginDevice;
 
 import java.util.List;
 
@@ -23,7 +24,7 @@ public class StpAppUtil {
     /**
      * 多账号体系下的类型标识
      */
-    public static final String TYPE = "app";
+    public static final String TYPE = LoginDevice.APP;
 
     /**
      * 底层使用的 StpLogic 对象

+ 6 - 6
admin/src/main/resources/application-dev.yml

@@ -25,12 +25,10 @@ spring:
       pool-prepared-statements: true
       max-pool-prepared-statement-per-connection-size: 20
   redis:
-    host: 106.53.222.208
-    lettuce:
-      pool:
-        max-active: 20
-        max-wait: -1
     password: flyer_foster
+    timeout: 20000
+    host: 106.53.222.208
+    database: 1
 mybatis-plus:
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
@@ -38,6 +36,7 @@ mybatis-plus:
 sa-token:
   # token 名称(同时也是 cookie 名称)
   token-name: token
+  is_read_cookie: false
   # token 有效期(单位:秒) 默认30天,-1 代表永久有效
   timeout: 2592000
   # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
@@ -50,7 +49,8 @@ sa-token:
   token-style: uuid
   # 是否输出操作日志
   is-log: true
+  is-write-header: false
 
 use-local-private-key: true
 rsa-private-key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIbvJIya52tj9POUUqqBPXQLuRXlkD+6afWC6ZX4Q3bSbmv+O+1BfFHdDoEuSsxydckTQckwQ5n+LQRC6pdldHpJxwaahMwOGQPS9XbrHy/7d6IIdkvG7+sv89W87kG2RrWXG8eaCBvxJHABOGf6q+N5PvwiL7gemba432qzoO1xAgMBAAECgYAWwDefZXbjioUAlN+jVAsyh897O6uosxuug5Yy7Rsi67QmjUU5abM2cllBurZt5lapwo9zBqo/SrX4Y/f98uNChHokiSKTq6EHoyqugu9Sckff1kJfkuTFxnNu0LFLnYlMb4NdMWB5S2PTyZh/GdvW48SMov1Yt+U5vjNCkfRiCQJBAMDnzHULgirBVYgg6osQwf18vln7MRddFHUb/201K6aNsoHXol86Mg72kERm+bDP9UdJ9x9Upd1stUE5GKqKbhsCQQCzEVaFISQe0fm4izUukxnDus45tlL0DGfqNzYVJzeK0C4b/Uh5LcPMp2ILZTkKovez8Hgp9nZDQx2m+wyNKptjAkBurI7BGDk2DnXkA/6MirDBnjAXr+YaYWy7Q7ToEvlYNTOVCwI9YEYYD531oJ7gsm8m12jQsN/4icX0Ba4BKirBAkEAgNK8V9Jb1gBhky4y+GrDYliF/Gb6jrBOIeXOdrFb9/WE9oXlGaie8CCLHH+Z5dkQMteQ2z+AHSuvrW12vigk2QJAIZDW6/EQmX4B2/w7MCCpNlJqwvUOrN2icbxC73hnjFvGgiRPkAxeSEiEi0Zk9QsYe1ljmRQn6vDyF64dbuUD7Q==
-rsa-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCG7ySMmudrY/TzlFKqgT10C7kV5ZA/umn1gumV+EN20m5r/jvtQXxR3Q6BLkrMcnXJE0HJMEOZ/i0EQuqXZXR6SccGmoTMDhkD0vV26x8v+3eiCHZLxu/rL/PVvO5Btka1lxvHmggb8SRwAThn+qvjeT78Ii+4Hpm2uN9qs6DtcQIDAQAB
+rsa-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCG7ySMmudrY/TzlFKqgT10C7kV5ZA/umn1gumV+EN20m5r/jvtQXxR3Q6BLkrMcnXJE0HJMEOZ/i0EQuqXZXR6SccGmoTMDhkD0vV26x8v+3eiCHZLxu/rL/PVvO5Btka1lxvHmggb8SRwAThn+qvjeT78Ii+4Hpm2uN9qs6DtcQIDAQAB