From b771d62db31bb113aff6db1be958ca83d591212f Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期六, 11 五月 2024 11:58:44 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java |   65 +++++++++++++++++---------------
 1 files changed, 35 insertions(+), 30 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
index 0228c3a..f06ee51 100644
--- a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
@@ -32,46 +32,51 @@
 
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        HandlerMethod handlerMethod = (HandlerMethod) handler;
-        Class<?> beanType = handlerMethod.getBeanType();
-        if (!beanType.isAnnotationPresent(LoginNoRequired.class) && !handlerMethod.hasMethodAnnotation(LoginNoRequired.class)) {
-            //鑾峰彇token
-            Cookie[]  cookies =   request.getCookies();
-            String token = request.getHeader(Constants.HEADER_USER_TOKEN);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
-            if(StringUtils.isBlank(token)){
-                for(Cookie c :cookies){
-                    if(StringUtils.equals(c.getName(),Constants.HEADER_USER_TOKEN)){
-                        token = c.getValue();
+        if(handler instanceof HandlerMethod){
+            HandlerMethod handlerMethod = (HandlerMethod) handler;
+            Class<?> beanType = handlerMethod.getBeanType();
+            if (!beanType.isAnnotationPresent(LoginNoRequired.class) && !handlerMethod.hasMethodAnnotation(LoginNoRequired.class)) {
+                //鑾峰彇token
+                Cookie[]  cookies =   request.getCookies();
+                String token = request.getHeader(Constants.HEADER_USER_TOKEN);  // 浠� http 璇锋眰澶翠腑鍙栧嚭 token
+                if(StringUtils.isBlank(token)){
+                    for(Cookie c :cookies){
+                        if(StringUtils.equals(c.getName(),Constants.HEADER_USER_TOKEN)){
+                            token = c.getValue();
+                        }
                     }
                 }
-            }
-            if (StringUtils.isNotBlank(token)) {
-              LoginUserInfo user =   checkLogin(token);
-                if (handlerMethod.hasMethodAnnotation(CloudRequiredPermission.class)) {
-                    CloudRequiredPermission p = handlerMethod.getMethodAnnotation(CloudRequiredPermission.class);
-                    if(p.value()!=null && p.value().length>0){
-                        boolean hasPermission = false;
-                        for(String s :p.value()){
-                            if(user.getPermissions()!=null){
-                                for(String t :user.getPermissions()){
-                                    if(StringUtils.equals(t,s)){
-                                        hasPermission = true;
-                                        break;
+                if (StringUtils.isNotBlank(token)) {
+                    LoginUserInfo user =   checkLogin(token);
+                    if (handlerMethod.hasMethodAnnotation(CloudRequiredPermission.class)) {
+                        CloudRequiredPermission p = handlerMethod.getMethodAnnotation(CloudRequiredPermission.class);
+                        if(p.value()!=null && p.value().length>0){
+                            boolean hasPermission = false;
+                            for(String s :p.value()){
+                                if(user.getPermissions()!=null){
+                                    for(String t :user.getPermissions()){
+                                        if(StringUtils.equals(t,s)){
+                                            hasPermission = true;
+                                            break;
+                                        }
                                     }
                                 }
                             }
+                            if(!hasPermission) {
+                                //娌℃湁鎿嶄綔鏉冮檺
+                                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娌℃湁璇ユ搷浣滄潈闄�");
+                            }
                         }
-                        if(!hasPermission) {
-                            //娌℃湁鎿嶄綔鏉冮檺
-                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娌℃湁璇ユ搷浣滄潈闄�");
-                        }
-                    }
 
+                    }
+                } else {
+                    throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
                 }
-            } else {
-                throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
             }
+        }else{
+            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
         }
+
         return true;
     }
 

--
Gitblit v1.9.3