Browse Source

Merge remote-tracking branch 'origin/master'

S0025136190 1 year ago
parent
commit
da0ee02db7

+ 10 - 0
Backend/sample/src/main/java/com/dji/sample/configuration/CustomConfiguration.java

@@ -62,6 +62,12 @@ public class CustomConfiguration {
      */
     public static String clientId;
 
+    /**
+     * 上级系统clientId
+     * @param parentSysClientId
+     */
+    public static String parentSysClientId;
+
     public void setFrequency(int frequency) {
         CustomConfiguration.frequency = frequency;
     }
@@ -93,6 +99,10 @@ public class CustomConfiguration {
     public void setClientId(String clientId) {
         CustomConfiguration.clientId = clientId;
     }
+
+    public void setParentSysClientId(String clientId) {
+        CustomConfiguration.parentSysClientId = clientId;
+    }
 }
 
 

+ 1 - 0
Backend/sample/src/main/java/com/dji/sample/configuration/mvc/GlobalMVCConfigurer.java

@@ -28,6 +28,7 @@ public class GlobalMVCConfigurer implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         // Exclude the login interface.
+        excludePaths.add("/" + managePrefix + manageVersion + "/signLogin");
         excludePaths.add("/" + managePrefix + manageVersion + "/login");
         excludePaths.add("/" + managePrefix + manageVersion + "/getToken");
         excludePaths.add("/" + managePrefix + manageVersion + "/token/refresh");

+ 12 - 15
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java

@@ -14,8 +14,6 @@ import com.dji.sample.common.model.CustomClaim;
 import com.dji.sample.common.util.DesUtil;
 import com.dji.sample.common.util.JwtUtil;
 import com.dji.sample.component.mqtt.config.MqttPropertyConfiguration;
-import com.dji.sample.component.mqtt.model.MqttClientOptions;
-import com.dji.sample.component.mqtt.model.MqttUseEnum;
 import com.dji.sample.configuration.CustomConfiguration;
 import com.dji.sample.manage.dao.IUserMapper;
 import com.dji.sample.manage.dao.IWorkspaceMapper;
@@ -29,20 +27,20 @@ import com.dji.sample.manage.service.IWorkspaceService;
 import com.dji.sdk.common.HttpResultResponse;
 import com.dji.sdk.common.Pagination;
 import com.dji.sdk.common.PaginationData;
-import com.fasterxml.classmate.Annotations;
-import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
-import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.*;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -356,17 +354,16 @@ public class UserServiceImpl implements IUserService {
 
         Long timestamp = signLoginDTO.getTimestamp();
 
+        if(!CustomConfiguration.parentSysClientId.equals(clientId)) {
+            return new HttpResultResponse()
+                    .setCode(HttpStatus.UNAUTHORIZED.value())
+                    .setMessage("invalid clientId");
+        }
 
-        // Step 1: Convert the date-time Long to LocalDateTime
-        LocalDateTime dateTime = LocalDateTime.ofInstant(
-                Instant.ofEpochSecond(timestamp),
-                ZoneId.systemDefault());
-        // Step 2: Calculate the difference between the current time and the extracted time
-        LocalDateTime currentTime = LocalDateTime.now();
-        Duration duration = Duration.between(dateTime, currentTime);
+        long btwTime = System.currentTimeMillis() - timestamp;
 
         // Step 3: Check if the difference is greater than 5 minutes
-        boolean isMoreThanFiveMinutes = duration.toMinutes() > 5;
+        boolean isMoreThanFiveMinutes = btwTime > 5 * 1000 * 60;
         if (isMoreThanFiveMinutes) {
             return new HttpResultResponse()
                     .setCode(HttpStatus.UNAUTHORIZED.value())
@@ -436,7 +433,7 @@ public class UserServiceImpl implements IUserService {
         userDTO.setUserId(userEntity.getUserId());
         userDTO.setMqttUsername(userEntity.getMqttUsername());
         userDTO.setMqttPassword(userEntity.getMqttPassword());
-        userDTO.setUserType(UserTypeEnum.SUPER_SYS.getVal());
+        userDTO.setUserType(UserTypeEnum.WEB.getVal());
         userDTO.setMqttAddr(MqttPropertyConfiguration.getBasicMqttAddress());
         userDTO.setAccessToken(token);
         return HttpResultResponse.success(userDTO);

+ 7 - 1
Backend/sample/src/main/resources/application.yml

@@ -181,10 +181,16 @@ livestream:
 custom-config:
   #航点采集频次(秒)
   frequency: 3
+  #DES加密密钥
   key: b1uruk98vuk40cdego6jw5yv9tygjm3s
+  #上级系统签名密钥
   signKey: 7e92430eb1f949e9a750fadf68777c44
+  #流媒体接口地址
   smspTokenUrl: http://smsp.jkec.info:18000/api/v1/login
   smspRtmpUrl: http://smsp.jkec.info:18000/api/v1/channelstream/all
   smspTokenUrl2: https://smsp.jkec.info:4443/api/v1/login
   smspRtmpUrl2: https://smsp.jkec.info:4443/api/v1/channelstream/all
-  clientId: e534550a85d94faba73e8040e76514bc
+  #流媒体客户端ID
+  clientId: e534550a85d94faba73e8040e76514bc
+  #上级系统客户端ID
+  parentSysClientId: b06d1ac3fb244110a8c2b5f93f15170d