Selaa lähdekoodia

修改core-solar增加app-code配置,以及配套的强制校验逻辑

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 2 vuotta sitten
vanhempi
commit
050f510b32

+ 10 - 0
core-solar/src/main/java/com/qmth/boot/core/solar/config/SolarProperties.java

@@ -14,6 +14,8 @@ public class SolarProperties {
     @NotNull
     private String server = SolarConstants.DEFAULT_SERVER;
 
+    private String appCode;
+
     private String accessKey;
 
     private String accessSecret;
@@ -28,6 +30,14 @@ public class SolarProperties {
         this.server = server;
     }
 
+    public String getAppCode() {
+        return appCode;
+    }
+
+    public void setAppCode(String appCode) {
+        this.appCode = appCode;
+    }
+
     public String getAccessKey() {
         return accessKey;
     }

+ 19 - 6
core-solar/src/main/java/com/qmth/boot/core/solar/service/SolarService.java

@@ -89,7 +89,10 @@ public class SolarService {
         solarProperties.setAccessSecret(accessSecret);
         solarProperties.setLicense(null);
         try {
-            appInfo = solarApiClient.getAppInfo();
+            AppInfo info = solarApiClient.getAppInfo();
+            if (info != null && checkAppCode(info)) {
+                appInfo = info;
+            }
         } catch (Exception e) {
             log.error("Solar api invoke error", e);
         }
@@ -108,19 +111,27 @@ public class SolarService {
         solarProperties.setAccessKey(null);
         solarProperties.setAccessSecret(null);
         AppLicense result = AppLicenseUtil.parseLicense(licenseData);
-        if (result != null && !result.getControl().hasExpired()) {
+        if (result != null && checkAppCode(result) && !result.getControl().hasExpired()) {
             license = result;
             appInfo = result;
         }
         return appInfo;
     }
 
+    private boolean checkAppCode(AppInfo info) {
+        return StringUtils.isBlank(solarProperties.getAppCode()) || solarProperties.getAppCode()
+                .equalsIgnoreCase(info.getCode());
+    }
+
     private void checkup() {
         log.info("Solar startup checking...");
         if (StringUtils.isNotBlank(solarProperties.getAccessKey()) && StringUtils
                 .isNotBlank(solarProperties.getAccessSecret())) {
             try {
-                appInfo = solarApiClient.getAppInfo();
+                AppInfo info = solarApiClient.getAppInfo();
+                if (info != null && checkAppCode(info)) {
+                    appInfo = info;
+                }
             } catch (Exception e) {
                 log.error("Solar api invoke error", e);
             }
@@ -128,7 +139,9 @@ public class SolarService {
             //启动授权文件默认绑定硬件信息
             AppLicense license = AppLicenseUtil.parseLicense(solarProperties.getLicense());
             if (license != null) {
-                if (license.getControl().hasExpired()) {
+                if (!checkAppCode(license)) {
+                    log.error("Solar license appCode invalid");
+                } else if (license.getControl().hasExpired()) {
                     log.error("Solar license has expired");
                 } else {
                     this.license = license;
@@ -139,9 +152,9 @@ public class SolarService {
             log.warn("Solar startup check exit, accessKey&accessSecret and license file not exist!");
         }
         if (appInfo != null) {
-            log.info("Solar startup check success, current app name: " + appInfo.getName());
+            log.info("Solar startup check success, current appCode={}, name={}", appInfo.getCode(), appInfo.getName());
         } else {
-            log.info("Solar startup check faile, app unexist!");
+            log.info("Solar startup check faile!");
         }
     }