From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 23 一月 2024 17:17:55 +0800 Subject: [PATCH] 抖音转链修改 --- fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java | 185 ++++++++++++++++++++++++++++------------------ 1 files changed, 113 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 9171187..d7779f8 100644 --- a/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java +++ b/fanli/src/main/java/com/yeshi/fanli/aspect/AdminLoginAspect.java @@ -8,11 +8,17 @@ 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; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -32,90 +38,125 @@ @Aspect public class AdminLoginAspect { - @Resource - private AdminUserService adminUserService; + private Logger logger = LoggerFactory.getLogger(AdminLoginAspect.class); - @Around("execution(public * com.yeshi.fanli.controller.admin..*.*(..))") - public Object verifyLoginState(ProceedingJoinPoint joinPoint) throws IOException { + @Resource + private AdminUserService adminUserService; - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method targetMethod = methodSignature.getMethod(); + @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(); - 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 (Constant.IS_TEST) { + admin = new AdminUser(); + admin.setId(1L); + admin.setName("Ceshi"); + admin.setAccount("ceshi"); + } - 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(); - } + if (admin == null) { - // 鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ - 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(1, "璇峰厛鐧诲綍")); - } else { - response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍") + ")"); - } - 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)) { + logger.debug("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) { + logger.debug("H5瀹℃牳閾炬帴澶辨晥"); + servletContainer.getResponse().getWriter() + .print(callback + "(" + JsonUtil.loadFalseResult(2, "閾炬帴澶辨晥") + ")"); + return null; + } else { + logger.debug("H5瀹℃牳璁剧疆Session寮�濮�"); + request.getSession().setAttribute(Constant.SESSION_ADMIN, adminUser); + request.getSession().setAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT, "1"); + logger.debug("H5瀹℃牳璁剧疆Session缁撴潫"); + } + } else { + servletContainer.getResponse().getWriter() + .print(callback + "(" + JsonUtil.loadFalseResult(3, "閾炬帴澶辨晥") + ")"); + return null; + } - Object[] args = joinPoint.getArgs(); - Object obj = 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(); + } - try { - obj = joinPoint.proceed(args); - } catch (Throwable 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, "璇峰厛鐧诲綍") + ")"); + } - return obj; - } + return null; + } + } + } + + String systemStr = request.getHeader("system"); + if (StringUtil.isNullOrEmpty(systemStr)) { + systemStr = SystemEnum.blks.name(); + } + + SystemEnum system = null; + + for (SystemEnum s : SystemEnum.values()) { + if (s.getName().equalsIgnoreCase(systemStr)) + system = s; + } + + 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