From 4ddfd502023662f6d25c4be416d88751e206d91a Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 25 十月 2022 09:45:30 +0800
Subject: [PATCH] 1

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

diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
index ba8612b..180f9bb 100644
--- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
+++ b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
@@ -14,6 +14,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 韬唤璁よ瘉鎷︽埅鍣�
@@ -31,22 +32,19 @@
 
     private static final String USER_LOCK = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.USER_LOCK_ERROR, "鐢ㄦ埛ID宸茬鐢�"));
 
+    private static final String NO_AUTH = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_AUTH_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) {
+        // noinspection AlibabaRemoveCommentedCode
         try {
-            System.out.println(request.getRequestURI().toLowerCase() + ", " + (handler instanceof HandlerMethod));
             // 闈炴柟娉� 鎴� 鏃犻渶鎺堟潈锛屾棤闇�鎷︽埅
             if (!(handler instanceof HandlerMethod) || noNeedAuth(request)) {
                 return true;
@@ -66,8 +64,10 @@
                 return WebHelper.write2Page(response, USER_LOCK);
             }
 
-            // noinspection AlibabaRemoveCommentedCode
             // 鏉冮檺鏍¢獙
+            //if (!checkPerms(ue, request)) {
+            //    return WebHelper.write2Page(response, NO_AUTH);
+            //}
 
             return true;
         } catch (Exception ex) {
@@ -78,9 +78,6 @@
 
     /**
      * 鏃犻渶鎺堟潈
-     *
-     * @param request
-     * @return
      */
     private static boolean noNeedAuth(HttpServletRequest request) {
         String uri = request.getRequestURI().toLowerCase();
@@ -92,4 +89,23 @@
 
         return false;
     }
+
+    /**
+     * 妫�鏌ユ潈闄�
+     */
+    private boolean checkPerms(UserEntity ue, HttpServletRequest request) {
+        List<String> list = tokenService.permsService.selectPerms(ue.getUid());
+        if (list == null || list.size() == 0) {
+            return false;
+        }
+
+        String url = request.getRequestURI();
+        for (String perm : list) {
+            if (url.startsWith(perm)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
 }

--
Gitblit v1.9.3