From e7b3a5e891287b1291d2ac38f7c83d5d73bc7906 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 08 十月 2022 08:49:01 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/interceptor/AuthInterceptor.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
index 2994796..4e03e05 100644
--- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
+++ b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
@@ -1,8 +1,99 @@
 package com.lf.server.interceptor;
 
+import com.alibaba.fastjson.JSON;
+import com.lf.server.entity.all.HttpStatus;
+import com.lf.server.entity.all.ResponseMsg;
+import com.lf.server.entity.all.StaticData;
+import com.lf.server.entity.sys.UsersEntity;
+import com.lf.server.helper.StringHelper;
+import com.lf.server.helper.WebHelper;
+import com.lf.server.service.sys.TokenService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * 韬唤璁よ瘉鎷︽埅鍣�
  * @author WWW
  */
-public class AuthInterceptor {
+@Configuration
+public class AuthInterceptor implements HandlerInterceptor {
+    private TokenService tokenService;
+
+    private static final Log log = LogFactory.getLog(AuthInterceptor.class);
+
+    private static final String NO_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.TOKEN_ERROR, "鎵句笉鍒颁护鐗�"));
+
+    private static final String NO_LOGIN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_LOGIN_ERROR, "鐢ㄦ埛鏈櫥褰�"));
+
+
+    public AuthInterceptor(TokenService tokenService) {
+        this.tokenService = tokenService;
+    }
+
+    /**
+     * Controller鎵ц涔嬪墠鎵ц锛屽鏋滆繑鍥炲�兼槸true鍒欎唬琛ㄦ斁琛岋紝杩斿洖false鍒欐嫤鎴�
+     *
+     * @param request
+     * @param response
+     * @param handler
+     * @return
+     */
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+        try {
+            System.out.println(request.getRequestURI().toLowerCase() + "," + (handler instanceof HandlerMethod));
+
+            // 闈炴柟娉曪紝鏃犻渶鎷︽埅
+            if (!(handler instanceof HandlerMethod)) {
+                return true;
+            }
+
+            // 鏃犻渶鎺堟潈
+            if (noNeedAuth(request)) {
+                return true;
+            }
+
+            String token = WebHelper.getToken(request);
+            if (StringHelper.isNull(token)) {
+                WebHelper.write2Page(response, NO_TOKEN);
+                return false;
+            }
+
+            UsersEntity ue = tokenService.getCurrentUser(request);
+            if (ue == null) {
+                WebHelper.write2Page(response, NO_LOGIN);
+                return false;
+            }
+
+            // 鏉冮檺鏍¢獙
+
+            return true;
+        } catch (Exception ex) {
+            log.error(ex.getStackTrace());
+            return false;
+        }
+    }
+
+    /**
+     * 鏃犻渶鎺堟潈
+     *
+     * @param request
+     * @return
+     */
+    private static boolean noNeedAuth(HttpServletRequest request) {
+        String uri = request.getRequestURI().toLowerCase();
+        for (String page : StaticData.EXCLUDE_PATH) {
+            if (uri.contains(page)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
 }

--
Gitblit v1.9.3