|
|
@@ -2,6 +2,7 @@ package com.zswl.dataservice.service.docker;
|
|
|
|
|
|
import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
+import com.zswl.dataservice.dao.docker.AkSkConfigTimeDao;
|
|
|
import com.zswl.dataservice.dao.docker.DockerMetaDao;
|
|
|
import com.zswl.dataservice.dao.docker.DockerMetaLastTimeDao;
|
|
|
import com.zswl.dataservice.dataConfig.ResultMessage;
|
|
|
@@ -11,9 +12,11 @@ import com.zswl.dataservice.model.docker.*;
|
|
|
import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
|
|
|
import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
|
|
|
import com.zswl.dataservice.service.base.SuperService;
|
|
|
+import com.zswl.dataservice.utils.SecurityUtil;
|
|
|
import com.zswl.dataservice.utils.bean.BeanUtils;
|
|
|
import com.zswl.dataservice.utils.page.PageEntityUtil;
|
|
|
import com.zswl.dataservice.utils.result.ResultContent;
|
|
|
+import jakarta.servlet.http.HttpServletRequest;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -23,8 +26,8 @@ import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import javax.crypto.Mac;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -41,6 +44,12 @@ public class DockerMetaService extends SuperService {
|
|
|
@Autowired
|
|
|
private DockerMetaLastTimeDao dockerMetaLastTimeDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ HttpServletRequest request;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AkSkConfigTimeDao akSkConfigTimeDao;
|
|
|
+
|
|
|
/**
|
|
|
* 添加docker元数据
|
|
|
*
|
|
|
@@ -127,9 +136,44 @@ public class DockerMetaService extends SuperService {
|
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 验证签名
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean verifySign() {
|
|
|
+ boolean b = false;
|
|
|
+ String ak = request.getHeader("db-ak");
|
|
|
+ AkSkConfig akSkConfig = akSkConfigTimeDao.findTopByAk(ak);
|
|
|
+ if (ObjectUtils.isNotEmpty(akSkConfig)) {
|
|
|
+ String sk = akSkConfig.getSk();
|
|
|
+ if (StringUtils.isNotEmpty(sk)) {
|
|
|
+ String dbSign = request.getHeader("db-sign");
|
|
|
+ String time = request.getHeader("db-time");
|
|
|
+ String input = String.format("%s%s%s", ak, time, sk);
|
|
|
+ String sign = SecurityUtil.getMD5Str(input).toLowerCase();
|
|
|
+ if (StringUtils.isNotEmpty(dbSign) && dbSign.equals(sign)) {
|
|
|
+ b = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ akSkConfig = new AkSkConfig();
|
|
|
+ akSkConfig.setAk(ak);
|
|
|
+ akSkConfig.setSk("");
|
|
|
+ akSkConfigTimeDao.save(akSkConfig);
|
|
|
+ }
|
|
|
+ return b;
|
|
|
+ }
|
|
|
+
|
|
|
public DockerMetaLastTimeModel getVersion() {
|
|
|
DockerMetaLastTimeModel model = new DockerMetaLastTimeModel();
|
|
|
String groupCode = getHeader("groupCode");
|
|
|
+ boolean b = verifySign();
|
|
|
+ if (!b) {
|
|
|
+ model.setUpdateTime(0L);
|
|
|
+ model.setCode("1000");
|
|
|
+ return model;
|
|
|
+ }
|
|
|
DockerMetaLastTime lastTime = dockerMetaLastTimeDao.findTopByGroupCode(groupCode);
|
|
|
if (ObjectUtils.isNotEmpty(lastTime)) {
|
|
|
model.setUpdateTime(lastTime.getLastTime());
|
|
|
@@ -139,6 +183,11 @@ public class DockerMetaService extends SuperService {
|
|
|
|
|
|
public List<JSONObject> getList() {
|
|
|
List<JSONObject> list = new ArrayList<>();
|
|
|
+ boolean b = verifySign();
|
|
|
+ if (!b) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
String groupCode = getHeader("groupCode");
|
|
|
if (StringUtils.isNotEmpty(groupCode)) {
|
|
|
List<DockerMeta> datas = dockerMetaDao.findByGroupCodeOrderByUpdateTimeDesc(groupCode);
|