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