From 56364722d3ed70d48ec41f567a4e59e5ccbbb868 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 19 五月 2022 17:45:42 +0800
Subject: [PATCH] 增加权限管理

---
 src/main/resources/code/service/app/src/main/java/com/ks/app/aop/AdminApiFilter.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/main/resources/code/service/app/src/main/java/com/ks/app/aop/AdminApiFilter.java b/src/main/resources/code/service/app/src/main/java/com/ks/app/aop/AdminApiFilter.java
index e991a30..81e62ed 100644
--- a/src/main/resources/code/service/app/src/main/java/com/ks/app/aop/AdminApiFilter.java
+++ b/src/main/resources/code/service/app/src/main/java/com/ks/app/aop/AdminApiFilter.java
@@ -1,6 +1,7 @@
 package com.ks.app.aop;
 
-import com.ks.app.entity.AdminUser;
+import com.ks.app.entity.admin.AdminUser;
+import com.ks.app.service.inter.admin.AdminRoleRuleService;
 import com.ks.app.utils.ApiCodeConstant;
 import com.ks.app.utils.SystemInfoUtil;
 import com.ks.app.vo.AcceptAdminData;
@@ -15,6 +16,7 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 import org.yeshi.utils.JsonUtil;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -25,13 +27,17 @@
 @Order(2)
 public class AdminApiFilter {
 
-    public static final String EDP = "execution(* com.ks.app.controller.admin..*.*(..))";
+    @Resource
+    private AdminRoleRuleService adminRoleRuleService;
+
+    public static final String EDP = "execution(* com.yeshi.makemoney.app.controller.admin..*.*(..))";
 
     @Around(EDP)
     public Object around(ProceedingJoinPoint joinPoint) throws IOException {
         Object[] args = joinPoint.getArgs();
         ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
                 .getRequestAttributes();
+        servletContainer.getResponse().setCharacterEncoding("UTF-8");
 
         AcceptAdminData acceptAdminData = null;
         for (Object obj : args) {
@@ -43,9 +49,10 @@
 
         if (acceptAdminData != null) {
             HttpSession session = servletContainer.getRequest().getSession();
+            String url = servletContainer.getRequest().getRequestURI();
 
-            acceptAdminData.setSystem(SystemInfoUtil.getAdminSelectedSystem(servletContainer.getRequest().getSession()));
-            if (acceptAdminData.getSystem() == null) {
+            acceptAdminData.setSystem(SystemInfoUtil.getAdminSelectedSystem(session));
+            if (acceptAdminData.getSystem() == null && !url.endsWith("index.html") && !url.endsWith("login.html")) {
                 PrintWriter out = servletContainer.getResponse().getWriter();
                 out.print(JsonUtil.loadFalseResult(ApiCodeConstant.CODE_ERROR_IN_SERVER, "鏈�夋嫨绯荤粺"));
                 out.close();
@@ -56,14 +63,20 @@
             if (contextSession != null) {
                 Authentication authentication = contextSession.getAuthentication();
                 AdminUser adminUser = (AdminUser) authentication.getPrincipal();
+                //鍔犺浇鏉冮檺
+                if (adminUser != null && adminUser.getRules() == null) {
+                    adminUser.setRules(adminRoleRuleService.listPaths(adminUser.getAccount()));
+                }
                 acceptAdminData.setAdminUser(adminUser);
             }
+
         }
 
 
         try {
             return joinPoint.proceed(args);
         } catch (Throwable e) {
+            e.printStackTrace();
             PrintWriter out = servletContainer.getResponse().getWriter();
             out.print(JsonUtil.loadFalseResult(ApiCodeConstant.CODE_ERROR_IN_SERVER, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"));
             out.close();

--
Gitblit v1.8.0