From 15ee5a10d665522ea53894bc1d5383ab25df21b8 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 10 七月 2023 14:35:28 +0800
Subject: [PATCH] 1

---
 src/main/java/com/moon/server/interceptor/ProxyFilter.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/moon/server/interceptor/ProxyFilter.java b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
index 5b14606..7fffc0c 100644
--- a/src/main/java/com/moon/server/interceptor/ProxyFilter.java
+++ b/src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -6,6 +6,7 @@
 import com.moon.server.helper.StringHelper;
 import com.moon.server.helper.WebHelper;
 import com.moon.server.service.all.SysService;
+import com.moon.server.service.sys.ResLogService;
 
 import javax.annotation.Resource;
 import javax.servlet.*;
@@ -24,6 +25,11 @@
     @Resource
     private SysService sysService;
 
+    @Resource
+    private ResLogService resLogService;
+
+    private final static int LEN = "/proxy/".length();
+
     @Override
     public void init(FilterConfig filterConfig) {
     }
@@ -32,26 +38,46 @@
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
         HttpServletRequest req = (HttpServletRequest) request;
         HttpServletResponse res = (HttpServletResponse) response;
-        if (!check(req, res)) {
+
+        String token = getToken(req);
+        if (!check(req, res, token)) {
             return;
         }
 
-        int i = 0;
+        String uri = req.getRequestURI();
+        int resId = getResId(uri, LEN + token.length() + 1);
+
+        //
+        insertLog(req, res);
     }
 
     @Override
     public void destroy() {
     }
 
-    private boolean check(HttpServletRequest req, HttpServletResponse res) {
-        // 2.鑾峰彇浠ょ墝
-        String token = WebHelper.getToken(req);
-        if (StringHelper.isNull(token)) {
-            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_TOKEN);
-        }
+    /**
+     * 鑾峰彇浠ょ墝
+     */
+    private String getToken(HttpServletRequest req) {
+        return req.getRequestURI().substring(LEN, req.getRequestURI().indexOf("/", LEN));
+    }
 
+    /**
+     * 鑾峰彇璧勬簮ID
+     */
+    private int getResId(String uri, int start) {
+        int end = uri.indexOf("/", start);
+        String str = -1 == end ? uri.substring(start) : uri.substring(start, end);
+
+        return Integer.parseInt(str);
+    }
+
+    /**
+     * 妫�鏌�
+     */
+    private boolean check(HttpServletRequest req, HttpServletResponse res, String token) {
         // 3.鑾峰彇鐢ㄦ埛
-        UserEntity ue = sysService.tokenService.getCurrentUser(req);
+        UserEntity ue = sysService.tokenService.getUserByToken(token);
         if (ue == null) {
             return WebHelper.writeStr2Page(res, AuthInterceptor.NO_LOGIN);
         }
@@ -123,4 +149,18 @@
 
         return te.getIp().equals(ip);
     }
+
+    private boolean checkPerms(int resId){
+
+
+        return true;
+    }
+
+    /**
+     * 鎻掑叆鏃ュ織
+     */
+    private void insertLog(HttpServletRequest req, HttpServletResponse res) {
+        String ip = WebHelper.getIpAddress(req);
+        //log.info("uriOri={} rAddr={} rHost={} token={}", uriOri, addr, host, token);
+    }
 }

--
Gitblit v1.9.3