From 64573efc2bdd4fbaf4557100f42938299ac7fd24 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 10 七月 2023 16:27:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/moon/server/interceptor/ProxyFilter.java |   75 +++++++++++++++++++++++++++++++------
 1 files changed, 62 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/moon/server/interceptor/ProxyFilter.java b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
index 9d28f17..87fd264 100644
--- a/src/main/java/com/moon/server/interceptor/ProxyFilter.java
+++ b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -2,9 +2,9 @@
 
 import com.alibaba.fastjson.JSON;
 import com.moon.server.entity.all.HttpStatus;
-import com.moon.server.entity.all.ResAuthEntity;
 import com.moon.server.entity.all.ResponseMsg;
 import com.moon.server.entity.all.StaticData;
+import com.moon.server.entity.sys.ResLogEntity;
 import com.moon.server.entity.sys.TokenEntity;
 import com.moon.server.entity.sys.UserEntity;
 import com.moon.server.helper.StringHelper;
@@ -51,12 +51,19 @@
 
         // 2.鑾峰彇浠ょ墝
         String token = getToken(req);
-        int resId = getResId(req.getRequestURI(), LEN + token.length() + 1);
-        if (!check(req, res, token, resId)) {
+
+        // 3.鑾峰彇鐢ㄦ埛
+        UserEntity ue = getUser(res, token);
+        if (null == ue) {
             return;
         }
 
-        insertLog(req, res);
+        int resId = getResId(req.getRequestURI(), LEN + token.length() + 1);
+        if (!check(req, res, ue, token, resId)) {
+            return;
+        }
+
+        insertLog(req, ue, resId);
     }
 
     @Override
@@ -68,6 +75,19 @@
      */
     private String getToken(HttpServletRequest req) {
         return req.getRequestURI().substring(LEN, req.getRequestURI().indexOf("/", LEN));
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛
+     */
+    private UserEntity getUser(HttpServletResponse res, String token) {
+        UserEntity ue = sysService.tokenService.getUserByToken(token);
+        if (ue == null) {
+            WebHelper.writeStr2Page(res, AuthInterceptor.NO_LOGIN);
+            return null;
+        }
+
+        return ue;
     }
 
     /**
@@ -83,13 +103,7 @@
     /**
      * 妫�鏌�
      */
-    private boolean check(HttpServletRequest req, HttpServletResponse res, String token, int resId) {
-        // 3.鑾峰彇鐢ㄦ埛
-        UserEntity ue = sysService.tokenService.getUserByToken(token);
-        if (ue == null) {
-            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_LOGIN);
-        }
-
+    private boolean check(HttpServletRequest req, HttpServletResponse res, UserEntity ue, String token, int resId) {
         // 4.鑾峰彇IP
         String ip = WebHelper.getIpAddress(req);
         if (StringHelper.isEmpty(ip)) {
@@ -179,8 +193,43 @@
     /**
      * 鎻掑叆鏃ュ織
      */
-    private void insertLog(HttpServletRequest req, HttpServletResponse res) {
+    private void insertLog(HttpServletRequest req, UserEntity ue, int resId) {
         String ip = WebHelper.getIpAddress(req);
-        //log.info("uriOri={} rAddr={} rHost={} token={}", uriOri, addr, host, token);
+
+        ResLogEntity entity = new ResLogEntity();
+        entity.setResid(resId);
+        entity.setType(getRequestType(req.getMethod()));
+        entity.setIp(ip);
+        entity.setUrl(req.getRequestURL().toString());
+        entity.setCreateUser(ue.getId());
+
+        resLogService.insert(entity);
+    }
+
+    /**
+     * 鑾峰彇璇锋眰绫诲埆
+     */
+    private int getRequestType(String method) {
+        // 璇锋眰绫伙細1-GET锛�2-POST锛�3-PUT锛�4-DELETE锛�5-TRACE锛�6-HEAD锛�7-OPTIONS锛�8-CONNECT';
+        switch (method) {
+            case "GET":
+                return 1;
+            case "POST":
+                return 2;
+            case "PUT":
+                return 3;
+            case "DELETE":
+                return 4;
+            case "TRACE":
+                return 5;
+            case "HEAD":
+                return 6;
+            case "OPTIONS":
+                return 7;
+            case "CONNECT":
+                return 8;
+            default:
+                return -1;
+        }
     }
 }

--
Gitblit v1.9.3