From c79b1ebed5a42a4cbb2f824232da2a51ff22a9a1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 04 十二月 2021 18:25:08 +0800 Subject: [PATCH] 功能完善 --- app/src/main/java/com/yeshi/location/app/aop/SignValidate.java | 69 ++++++++++++++++++++++------------ 1 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/yeshi/location/app/aop/SignValidate.java b/app/src/main/java/com/yeshi/location/app/aop/SignValidate.java index 58a935b..03797d9 100644 --- a/app/src/main/java/com/yeshi/location/app/aop/SignValidate.java +++ b/app/src/main/java/com/yeshi/location/app/aop/SignValidate.java @@ -1,14 +1,23 @@ package com.yeshi.location.app.aop; import com.yeshi.location.app.entity.config.SystemConfigKey; +import com.yeshi.location.app.service.inter.config.SystemConfigService; +import com.yeshi.location.app.utils.ApiCodeConstant; +import com.yeshi.location.app.utils.SystemInfoUtil; import com.yeshi.location.app.vo.AcceptData; -import net.sf.json.JSONObject; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.yeshi.utils.JsonUtil; import org.yeshi.utils.StringUtil; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.PrintWriter; import java.util.*; //瀹㈡埛绔帴鍙g鍚嶉獙璇� @@ -17,28 +26,42 @@ @Order(2) public class SignValidate { - private String getHttpServletParams(HttpServletRequest request) { - if (request == null) { - return ""; - } - Map map = request.getParameterMap(); - if (map != null) { - Iterator<String> its = map.keySet().iterator(); - JSONObject json = new JSONObject(); - while (its.hasNext()) { - String next = its.next(); - if (map.get(next) != null) { - Object[] objects = (Object[]) map.get(next); - if (objects != null && objects.length > 0) { - json.put(next, objects[0].toString()); - } - } - } - return json.toString(); - } - return ""; - } + public static final String EDP = "execution(* com.yeshi.location.app.controller.client..*.*(..))"; + @Resource + private SystemConfigService systemConfigService; + + @Around(EDP) + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + + Object[] args = joinPoint.getArgs(); + ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder + .getRequestAttributes(); + PrintWriter out = null;//servletContainer.getResponse().getWriter(); + AcceptData acceptData = null; + for (Object obj : args) { + if (obj instanceof AcceptData) { + acceptData = (AcceptData) obj; + break; + } + } + + if (acceptData != null) { + acceptData.setSystem(SystemInfoUtil.getSystem(acceptData.getPlatform(), acceptData.getPackages())); + } + + boolean signIsRight = true;//signIsRight(servletContainer.getRequest(), acceptData); + if (!signIsRight) { + return (JsonUtil.loadFalseResult(ApiCodeConstant.CODE_FAIL_SIGN_ERROR, "绛惧悕閿欒")); + } + + if (Math.abs((acceptData.getTimestamp() - System.currentTimeMillis())) > 1000 * 60 * 10) { + out.print(JsonUtil.loadFalseResult(ApiCodeConstant.CODE_FAIL_OUT_TIME, "鏃堕棿閿欒")); + return null; + } + + return joinPoint.proceed(); + } /** * 鍒ゆ柇绛惧悕鐨勬纭�� Android version>50 @@ -72,6 +95,4 @@ return false; } } - - } -- Gitblit v1.8.0