From 2b35339fd67969df7acb8c75bfceafa1ba134b41 Mon Sep 17 00:00:00 2001
From: chenjiahe <763432473@qq.com>
Date: 星期四, 11 八月 2022 14:32:11 +0800
Subject: [PATCH] 签名有效时间提升到30秒钟

---
 src/main/java/com/platform/verification/VerificationTool.java |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/platform/verification/VerificationTool.java b/src/main/java/com/platform/verification/VerificationTool.java
index 5056c69..a94fca7 100644
--- a/src/main/java/com/platform/verification/VerificationTool.java
+++ b/src/main/java/com/platform/verification/VerificationTool.java
@@ -1,12 +1,14 @@
 package com.platform.verification;
 
-
 import com.hx.util.DateUtil;
 import com.hx.util.StringUtils;
 import com.hx.util.rsa.RSAUtil;
+import com.platform.constants.LoginConstant;
+import com.platform.entity.ThirtApplication;
 import com.platform.resultTool.PlatformCode;
 import com.platform.resultTool.PlatformResult;
 
+import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -17,63 +19,68 @@
 public class VerificationTool {
 
     /**鏍¢獙鏂规硶璇锋眰
-     * @param appId 鐢ㄦ埛鐨凙PPID
+     * @param appId 鐢ㄦ埛鐨凙PPID `
      * @param sign 鐢ㄦ埛绛惧悕
-     * @param sys_appId 绯荤粺鐨刟ppid
-     * @param sys_private_key 绯荤粺鐨凴SA绉橀挜
+     * @param thirtApplication ThirtApplication
      * @return
      */
-    public static PlatformResult verification(String appId,String sign,String sys_appId,String sys_private_key){
+    public static PlatformResult verification(String appId, String sign, ThirtApplication thirtApplication,HttpServletRequest request){
 
         if (StringUtils.isEmpty(sign)) {
-            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒");
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒01");
         }
         if (StringUtils.isEmpty(appId)) {
             return PlatformResult.failure(PlatformCode.ERROR_APPIS, "APPID閿欒");
         }
 
         //鏍¢獙appid鏄惁瀛樺湪
-        if(!sys_appId.equals("appId")){
-            return PlatformResult.failure(PlatformCode.ERROR_APPIS, "APPID閿欒");
+        if(thirtApplication == null){
+            return PlatformResult.failure(PlatformCode.ERROR_APPIS, "APPID鏃犳晥");
+        }
+
+        if(StringUtils.isEmpty(thirtApplication.getPrivateKey())){
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒,APPID鏃犳晥");
         }
 
         //瑙e瘑RSA
         String decrypt = null;
         try{
-            decrypt = RSAUtil.privateDecrypt(sign, sys_private_key);
+            decrypt = RSAUtil.privateDecrypt(sign, thirtApplication.getPrivateKey());
         }catch (Exception e){
 
         }
         if(StringUtils.isEmpty(decrypt)){
-            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒");
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒02");
         }
 
         //decrypt鏍煎紡锛歛ppId_鏃堕棿鎴砡闅忔満鏁帮紙灏介噺灏戯級
         String[] decrypts = decrypt.split("_");
         if(decrypts.length != 3){
-            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒");
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒03");
         }
 
         if (!appId.equals(decrypts[0])) {
-            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒");
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒04");
         }
 
         Date date  = null;
         try{
-
             //鍒ゆ柇鎺ュ彛鏃堕棿
             SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String sd = sdf.format(new Date(Long.parseLong(String.valueOf(decrypts[1]))));      // 鏃堕棿鎴宠浆鎹㈡垚鏃堕棿
             date = DateUtil.parseString(sd,"yyyy-MM-dd HH:mm:ss");
         }catch (Exception e){
-            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒");
+            return PlatformResult.failure(PlatformCode.ERROR_SIGN, "绛惧悕閿欒05");
         }
 
-        //鎺ュ彛鏈夋晥2绉掗挓
-        if(System.currentTimeMillis()-date.getTime() > 2000){
-            return PlatformResult.failure(PlatformCode.ERROR_INVALID_VISIT, "璁块棶鏃犳晥");
+        //鎺ュ彛鏈夋晥30绉掗挓
+        if(System.currentTimeMillis()-date.getTime() > 30000){
+            return PlatformResult.failure(PlatformCode.ERRO_VISIT_OVERTIMR, "璁块棶瓒呮椂");
         }
 
+        thirtApplication.setPrivateKey(null);
+        request.getSession().setAttribute(LoginConstant.LOGIN_APPLY,thirtApplication);
+
         return PlatformResult.success();
     }
 

--
Gitblit v1.8.0