Prechádzať zdrojové kódy

参数更改以及sign校验更改

xie.kaifeng 1 rok pred
rodič
commit
ee8faa6b15

+ 1 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/CommonController.java

@@ -95,7 +95,7 @@ public class CommonController {
     private AjaxResult getSign(HttpServletRequest request) {
         String sign = EncryptionUtils.encryptSHA(CommonUtil.getIpAddress(request) + APP_SECRET + NONCE_KEY + DateTimeUtils.getSysTimestamp());
         //存入redis
-        redisServiceUtil.setCacheObject(CommonUtil.getIpAddress(request), sign, RedisConstants.LOGIN_CODE_TTL, TimeUnit.DAYS);
+        redisServiceUtil.setCacheObject(request.getHeader("Sign-Id"), sign, RedisConstants.LOGIN_CODE_TTL, TimeUnit.DAYS);
         return AjaxResult.success(Constants.Success_Code_Design, Constants.Deal_Success_Message, sign);
     }
 

+ 14 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/interceptor/SignAuthInterceptor.java

@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
 @Slf4j
 @Component
@@ -30,6 +31,18 @@ public class SignAuthInterceptor implements HandlerInterceptor {
             ResponseUtils.writeFiled(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "系统异常,请联系管理员!", false);
             return false;
         }
+        //重复请求判断
+        Object timeCache = redisUtils.getCacheObject(request.getHeader("Sign-Id")+"-timestamp");
+        if(Objects.isNull(timeCache)){
+            redisUtils.setCacheObject(request.getHeader("Sign-Id")+"-timestamp", timestampStr, RedisConstants.CACHE_NULL_TTL, TimeUnit.MINUTES);
+        }else{
+            if(timestampStr.equals(timeCache)){
+                log.debug("不可多次重复请求...........");
+                ResponseUtils.writeFiled(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "系统异常,请联系管理员!", false);
+                return false;
+            }
+            redisUtils.setCacheObject(request.getHeader("Sign-Id")+"-timestamp", timestampStr, RedisConstants.CACHE_NULL_TTL, TimeUnit.MINUTES);
+        }
         String sign = request.getHeader("sign");
         if (StringUtils.isBlank(sign)) {
             log.debug("sign不能为空...........");
@@ -37,7 +50,7 @@ public class SignAuthInterceptor implements HandlerInterceptor {
             return false;
         }
         //获取redis存入的sign
-        Object cacheObject = redisUtils.getCacheObject(CommonUtil.getIpAddress(request));
+        Object cacheObject = redisUtils.getCacheObject(request.getHeader("Sign-Id"));
         if (Objects.isNull(cacheObject)) {
             log.debug("sign签名失效...........");
             ResponseUtils.writeFiled(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "系统异常,请联系管理员!", false);

+ 4 - 4
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/commission/CommissionSheetResultDetail.java

@@ -76,13 +76,13 @@ public class CommissionSheetResultDetail {
     @ApiModelProperty(value = "委托来源")
     private Integer ordersrc;
     @ApiModelProperty(value = "客户端流水号")
-    private Integer clientticket;
+    private String clientticket;
     @ApiModelProperty(value = "撤单单号")
-    private Long cancelorderid;
+    private String cancelorderid;
     @ApiModelProperty(value = "关联预埋单号")
-    private Long preorderid;
+    private String preorderid;
     @ApiModelProperty(value = "关联单号")
-    private Long relatedid;
+    private String relatedid;
     @ApiModelProperty(value = "错误码")
     private Long retcode;
     @ApiModelProperty(value = "参考商品")