From f862a844ea7e212f8cc0622b858308e2b91dca2e Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 04 七月 2020 16:35:50 +0800 Subject: [PATCH] 后台管理相关Controller注入系统 --- fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java | 169 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 97 insertions(+), 72 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java index 77c11d7..c02fc44 100644 --- a/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java +++ b/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java @@ -8,6 +8,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.aliyun.openservices.ons.api.Admin; +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.accept.AdminAcceptData; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Around; @@ -32,90 +36,111 @@ @Aspect public class AdminLoginAspect { - @Resource - private AdminUserService adminUserService; + @Resource + private AdminUserService adminUserService; - @Around("execution(public * com.yeshi.fanli.controller.admin..*.*(..))") - public Object verifyLoginState(ProceedingJoinPoint joinPoint) throws IOException { + @Around("execution(public * com.yeshi.fanli.controller.admin..*.*(..))") + public Object verifyLoginState(ProceedingJoinPoint joinPoint) throws IOException { + Object[] args = joinPoint.getArgs(); + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method targetMethod = methodSignature.getMethod(); - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method targetMethod = methodSignature.getMethod(); + ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder + .getRequestAttributes(); - ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder - .getRequestAttributes(); + HttpServletRequest request = servletContainer.getRequest(); - HttpServletRequest request = servletContainer.getRequest(); + AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); - AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN); + if (admin == null) { - if (admin == null) { + String from = request.getParameter("from"); + // 閭欢H5鏉ユ簮鐨勪笉鍒ゆ柇鏄惁鐧诲綍 + if ("emailh5".equalsIgnoreCase(from)) { + String callback = request.getParameter("callback"); + String signAES = request.getParameter("sign"); + if (signAES != null && signAES.contains("%")) + signAES = URLDecoder.decode(request.getParameter("sign"), "UTF-8"); + String sign = AESUtil.decrypt(signAES, Constant.ADMINH5_AESKEY); + if (!StringUtil.isNullOrEmpty(sign)) { + LogHelper.error("H5瀹℃牳绛惧悕:" + sign); + JSONObject json = JSONObject.fromObject(sign); + long time = json.optLong("timeStamp"); + long adminId = json.optLong("adminId"); + AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId); + // 1涓皬鏃堕摼鎺ュけ鏁� + if (System.currentTimeMillis() - time > 1000 * 60 * 60 || adminUser == null) { + servletContainer.getResponse().getWriter() + .print(callback + "(" + JsonUtil.loadFalseResult(2, "閾炬帴澶辨晥") + ")"); + return null; + } else { + request.getSession().setAttribute(Constant.SESSION_ADMIN, adminUser); + request.getSession().setAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT, "1"); + } + } else { + servletContainer.getResponse().getWriter() + .print(callback + "(" + JsonUtil.loadFalseResult(3, "閾炬帴澶辨晥") + ")"); + return null; + } - String from = request.getParameter("from"); - // 閭欢H5鏉ユ簮鐨勪笉鍒ゆ柇鏄惁鐧诲綍 - if ("emailh5".equalsIgnoreCase(from)) { - String callback = request.getParameter("callback"); - String signAES = request.getParameter("sign"); - if (signAES != null && signAES.contains("%")) - signAES = URLDecoder.decode(request.getParameter("sign"), "UTF-8"); - String sign = AESUtil.decrypt(signAES, Constant.ADMINH5_AESKEY); - if (!StringUtil.isNullOrEmpty(sign)) { - LogHelper.error("H5瀹℃牳绛惧悕:" + sign); - JSONObject json = JSONObject.fromObject(sign); - long time = json.optLong("timeStamp"); - long adminId = json.optLong("adminId"); - AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId); - // 1涓皬鏃堕摼鎺ュけ鏁� - if (System.currentTimeMillis() - time > 1000 * 60 * 60 || adminUser == null) { - servletContainer.getResponse().getWriter() - .print(callback + "(" + JsonUtil.loadFalseResult(2, "閾炬帴澶辨晥") + ")"); - return null; - } else { - request.getSession().setAttribute(Constant.SESSION_ADMIN, adminUser); - request.getSession().setAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT, "1"); - } - } else { - servletContainer.getResponse().getWriter() - .print(callback + "(" + JsonUtil.loadFalseResult(3, "閾炬帴澶辨晥") + ")"); - return null; - } + } else { + Method realMethod = null; + try { + realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(), + targetMethod.getParameterTypes()); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } - } else { - Method realMethod = null; - try { - realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(), - targetMethod.getParameterTypes()); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } + // 鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ + if (realMethod == null || !realMethod.isAnnotationPresent(RequestNoLogin.class)) { + HttpServletResponse response = servletContainer.getResponse(); + String callback = request.getParameter("callback"); + if (StringUtil.isNullOrEmpty(callback)) { + response.getWriter().print(JsonUtil.loadFalseResult(10001, "璇峰厛鐧诲綍")); + } else { + response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(10001, "璇峰厛鐧诲綍") + ")"); + } - // 鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ - if (realMethod == null || !realMethod.isAnnotationPresent(RequestNoLogin.class)) { - HttpServletResponse response = servletContainer.getResponse(); - String callback = request.getParameter("callback"); - if (StringUtil.isNullOrEmpty(callback)) { - response.getWriter().print(JsonUtil.loadFalseResult(10001, "璇峰厛鐧诲綍")); - } else { - response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(10001, "璇峰厛鐧诲綍") + ")"); - } + return null; + } + } + } - return null; - } - } - } + String systemStr = request.getHeader("system"); + if (StringUtil.isNullOrEmpty(systemStr)) { + systemStr = SystemEnum.blks.name(); + } - Object[] args = joinPoint.getArgs(); - Object obj = null; + SystemEnum system = null; - try { - obj = joinPoint.proceed(args); - } catch (Throwable e) { - e.printStackTrace(); - } + for (SystemEnum s : SystemEnum.values()) { + if (s.getName().equalsIgnoreCase(systemStr)) + system = s; + } - return obj; - } + AdminAcceptData acceptData = null; + for (Object obj : args) { + if (obj instanceof AdminAcceptData) { + acceptData = (AdminAcceptData) obj; + } + } + + if (acceptData != null) + acceptData.setSystem(system); + + Object obj = null; + + try { + obj = joinPoint.proceed(args); + } catch (Throwable e) { + e.printStackTrace(); + } + + return obj; + } } -- Gitblit v1.8.0