|
@@ -1,11 +1,18 @@
|
|
|
package com.fdkankan.ucenter.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.HexUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.crypto.SecureUtil;
|
|
|
+import cn.hutool.crypto.SmUtil;
|
|
|
+import cn.hutool.crypto.asymmetric.KeyType;
|
|
|
+import cn.hutool.crypto.asymmetric.SM2;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
|
import com.fdkankan.common.exception.BusinessException;
|
|
|
import com.fdkankan.common.util.JwtUtil;
|
|
|
+import com.fdkankan.common.util.SecurityUtil;
|
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
@@ -17,9 +24,11 @@ import com.fdkankan.ucenter.entity.*;
|
|
|
import com.fdkankan.ucenter.service.*;
|
|
|
import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
|
|
|
import com.fdkankan.ucenter.vo.request.SceneParam;
|
|
|
+import com.fdkankan.ucenter.util.RsaUtils;
|
|
|
import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -27,6 +36,9 @@ import java.io.File;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.security.KeyPair;
|
|
|
+import java.security.PrivateKey;
|
|
|
+import java.util.Date;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -223,6 +235,45 @@ public class InnerServiceImpl implements IInnerService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public Boolean checkSign(String sign) {
|
|
|
+ try {
|
|
|
+ if(StringUtils.isBlank(sign)){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ String deTxt = RsaUtils.decipher(sign, RsaUtils.privateKey);
|
|
|
+ if(StringUtils.isBlank(deTxt)){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(deTxt);
|
|
|
+ String appId = jsonObject.getString("appId");
|
|
|
+ Long timestamp = jsonObject.getLong("timestamp");
|
|
|
+ if(StringUtils.isBlank(appId) || timestamp == null){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!appId.equals("ucenter")){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ Long time = new Date().getTime();
|
|
|
+ if(time -timestamp >1000 * 30){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("checkSign-error:{}",sign,e);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("appId","ucenter");
|
|
|
+ jsonObject.put("timestamp",new Date().getTime());
|
|
|
+ System.out.println(jsonObject);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
public Object getSceneBySnCode(SceneParam param) {
|
|
|
Camera camera = cameraService.getBySnCode(param.getSnCode());
|
|
|
if(camera == null ){
|