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