|
@ -26,15 +26,10 @@ import org.springframework.web.context.request.RequestContextHolder; |
|
|
import org.springframework.web.context.request.ServletRequestAttributes; |
|
|
import org.springframework.web.context.request.ServletRequestAttributes; |
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
import java.beans.IntrospectionException; |
|
|
|
|
|
import java.lang.reflect.Field; |
|
|
|
|
|
import java.lang.reflect.InvocationTargetException; |
|
|
|
|
|
import java.lang.reflect.Method; |
|
|
import java.lang.reflect.Method; |
|
|
import java.lang.reflect.Parameter; |
|
|
import java.lang.reflect.Parameter; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.HashMap; |
|
|
import java.util.HashMap; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
import java.util.Set; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* OpenApi检查请求切面 |
|
|
* OpenApi检查请求切面 |
|
@ -90,6 +85,12 @@ public class OpenApiRequestCheckAspect { |
|
|
checkRepeatRequest(argMap); |
|
|
checkRepeatRequest(argMap); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @Description 填充url请求参数到map中,用来签名 |
|
|
|
|
|
* @return |
|
|
|
|
|
* @author wxz |
|
|
|
|
|
* @date 2021.03.26 10:13 |
|
|
|
|
|
*/ |
|
|
private void fillRequestParamsInfoArgMap(Map<String, String> argMap, HttpServletRequest request) { |
|
|
private void fillRequestParamsInfoArgMap(Map<String, String> argMap, HttpServletRequest request) { |
|
|
fillRequestParamsInfoArgMap(argMap, request, RequestParamKeys.APP_ID); |
|
|
fillRequestParamsInfoArgMap(argMap, request, RequestParamKeys.APP_ID); |
|
|
fillRequestParamsInfoArgMap(argMap, request, RequestParamKeys.AUTH_TYPE); |
|
|
fillRequestParamsInfoArgMap(argMap, request, RequestParamKeys.AUTH_TYPE); |
|
@ -116,7 +117,7 @@ public class OpenApiRequestCheckAspect { |
|
|
} |
|
|
} |
|
|
long timestamp = Long.valueOf(timestampStr).longValue(); |
|
|
long timestamp = Long.valueOf(timestampStr).longValue(); |
|
|
long now = System.currentTimeMillis(); |
|
|
long now = System.currentTimeMillis(); |
|
|
long requestTimeDiff = 60000; |
|
|
long requestTimeDiff = 120000; |
|
|
if (Math.abs(now - timestamp) > requestTimeDiff) { |
|
|
if (Math.abs(now - timestamp) > requestTimeDiff) { |
|
|
// 只允许1分钟之内的请求,允许服务器之间时差为1分钟
|
|
|
// 只允许1分钟之内的请求,允许服务器之间时差为1分钟
|
|
|
throw new RenException(String.format("请求已过时,允许时差为%s ms", requestTimeDiff)); |
|
|
throw new RenException(String.format("请求已过时,允许时差为%s ms", requestTimeDiff)); |
|
|