Browse Source

修改页面退出后保留上次tabs标签页。增加返回前端访问权限提示信息

xusl 2 years ago
parent
commit
c2c0de3383

+ 5 - 2
backend/src/main/java/com/jiayue/ssi/controller/SysMenuController.java

@@ -11,6 +11,7 @@ import com.jiayue.ssi.constant.UserConstants;
 import com.jiayue.ssi.entity.SysMenu;
 import com.jiayue.ssi.service.SysMenuService;
 import com.jiayue.ssi.util.RyStringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -41,8 +42,10 @@ public class SysMenuController {
     @PreAuthorize("@ss.hasPermi('system:menu:list')")
     public ResponseVO list(SysMenu menu) {
         try {
-            if (menu.getMenuName().length() > 50) {
-                return ResponseVO.fail("菜单名长度不能超过50个字符!");
+            if (StringUtils.isNotEmpty(menu.getMenuName())){
+                if (menu.getMenuName().length() > 50) {
+                    return ResponseVO.fail("菜单名长度不能超过50个字符!");
+                }
             }
             List<SysMenu> menus = sysMenuService.selectMenuList(menu, SecurityContextUtil.getSysUser().getId());
             return ResponseVO.success(menus);

+ 7 - 4
backend/src/main/java/com/jiayue/ssi/handler/RestAccessDeniedHandler.java

@@ -7,6 +7,8 @@ import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.web.access.AccessDeniedHandler;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+
 /**
  * 权限不足:认证过的用户访问无权限资源时的异常
  *
@@ -16,10 +18,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class RestAccessDeniedHandler implements AccessDeniedHandler {
-
     @Override
-    public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) {
-        System.out.println("qunxianbuzu");
+    public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) throws IOException {
+        response.setHeader("Access-Control-Allow-Origin", "*");
+        response.setStatus(402);
+        response.setContentType("text/html;charset=utf-8");
+        response.getWriter().write("没有接口访问权限!");
     }
-
 }

+ 3 - 0
ui/src/utils/auth.js

@@ -1,4 +1,5 @@
 import Cookies from 'js-cookie'
+import store from "@/store";
 
 
 const TokenKey = 'vue_admin_template_token'
@@ -14,4 +15,6 @@ export function setToken(token) {
 export function removeToken() {
   sessionStorage.removeItem('token')
   sessionStorage.removeItem('userinfo')
+  store.dispatch('tagsView/delAllCachedViews')
+  store.dispatch('tagsView/delAllVisitedViews')
 }

+ 13 - 0
ui/src/utils/request.js

@@ -56,6 +56,8 @@ service.interceptors.request.use(
       let tokenStr = doEncrypt(sessionStorage.getItem("token"))
       config.headers['Authorization'] = tokenStr
       config.headers['TokenSign'] = doSign(sessionStorage.getItem("token"))
+      console.log('Authorization='+tokenStr)
+      console.log('TokenSign='+config.headers['TokenSign'])
     }
     return config
   },
@@ -125,6 +127,17 @@ service.interceptors.response.use(
             duration: 5 * 1000
           })
           break
+        case 402:
+          console.log('权限不足!')
+          // 返回 401 清除token信息并跳转到登录页面
+          removeToken()
+          resetRouter()
+          Message({
+            message: error.response.data,
+            type: 'error',
+            duration: 5 * 1000
+          })
+          break
         case 403:
           console.log('登录超时!')
           // 返回 401 清除token信息并跳转到登录页面