lyhzzz 1 年之前
父節點
當前提交
06adbdc64d

+ 13 - 3
doc/rtk接口文档.md

@@ -7,6 +7,9 @@
   正式域名:https://www.4dkankan.com
 </h4> 
 
+public-key :
+MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAN0S3kQo86riY8pciZGicBOFSrdXFSP7fPNrFdmjEGbR3MKsce4e5+Mx+3/qDoVvPKd08DdbIAsXNwr8BdFU8KsCAwEAAQ==
+
             
 ## 根据板卡sn获取rtk详情
 <a id=根据板卡sn获取rtk详情1881> </a>
@@ -22,9 +25,10 @@
 ### 请求参数
 **Headers**
 
-| 参数名称  | 参数值  |  是否必须 | 示例  | 备注  |
-| ------------ | ------------ | ------------ | ------------ | ------------ |
-| Content-Type  |  application/json | 是  |   |   |
+| 参数名称         | 参数值                  |  是否必须 | 示例  | 备注  |
+|--------------|----------------------| ------------ | ------------ | ------------ |
+| Content-Type | application/json     | 是  |   |   |
+| sign         | rtkSnCode值,使用Ras公钥加密 | 是  |   |   |
 **路径参数**
 
 | 参数名称 | 示例  | 备注  |
@@ -50,3 +54,9 @@
 <h5>
 50070, "板卡SN码不存在,或未入库"
 </h5>
+<h5>
+50071, "缺少签名验证信息"
+</h5>
+<h5>
+50072, "签名校验失败"
+</h5>

+ 2 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -88,6 +88,8 @@ public enum ResultCode  {
     FEEDBACK_OPTION_DELETE_ERROR(50069, "数据不存在或者预设数据不可删除"),
 
     RTK_SN_CODE_NOT_EXIT(50070, "板卡SN码不存在,或未入库"),
+    RTK_TOKEN_NOT_EXIT(50071, "缺少签名验证信息"),
+    RTK_TOKEN_ERROR(50072, "签名校验失败"),
 
 
     ;

+ 15 - 0
src/main/java/com/fdkankan/manage/inner/controller/InnerController.java

@@ -10,6 +10,7 @@ import com.fdkankan.manage.service.ICommonService;
 import com.fdkankan.manage.service.IRtkInfoService;
 import com.fdkankan.manage.service.ISceneProService;
 import com.fdkankan.manage.service.IServiceUpTipService;
+import com.fdkankan.manage.util.RsaUtils;
 import com.fdkankan.manage.vo.request.SceneParam;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,6 +73,20 @@ public class InnerController extends BaseController {
         if(StringUtils.isBlank(rtkSnCode)){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
+        String token = getSign();
+        if(StringUtils.isBlank(token)){
+            throw new BusinessException(ResultCode.RTK_TOKEN_NOT_EXIT);
+        }
+        try {
+            String deTxt = RsaUtils.decipher(token, RsaUtils.privateKey);
+            if(!deTxt.equals(rtkSnCode)){
+                throw new BusinessException(ResultCode.RTK_TOKEN_ERROR);
+            }
+        }catch (Exception e){
+            throw new BusinessException(ResultCode.RTK_TOKEN_ERROR);
+        }
+
+
         RtkInfo rtkInfo = rtkInfoService.getByRtkSnCode(rtkSnCode);
         if(rtkInfo == null){
             throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_EXIT);