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