Ver Fonte

支持校验CDN静态资源开关

穿云 há 2 meses atrás
pai
commit
6d767c67be

+ 10 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/system/SystemConfigChecker.java

@@ -3,8 +3,10 @@
  */
 package org.dbsyncer.biz.checker.impl.system;
 
+import org.dbsyncer.biz.BizException;
 import org.dbsyncer.biz.checker.AbstractChecker;
 import org.dbsyncer.common.util.BeanUtil;
+import org.dbsyncer.common.util.NetworkUtil;
 import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.parser.ProfileComponent;
 import org.dbsyncer.parser.LogService;
@@ -54,9 +56,16 @@ public class SystemConfigChecker extends AbstractChecker {
         params.put("enableStorageWriteSuccess", StringUtil.isNotBlank(params.get("enableStorageWriteSuccess")) ? "true" : "false");
         params.put("enableStorageWriteFail", StringUtil.isNotBlank(params.get("enableStorageWriteFail")) ? "true" : "false");
         params.put("enableStorageWriteFull", StringUtil.isNotBlank(params.get("enableStorageWriteFull")) ? "true" : "false");
-        params.put("enableCDN", StringUtil.isNotBlank(params.get("enableCDN")) ? "true" : "false");
         params.put("enableWatermark", StringUtil.isNotBlank(params.get("enableWatermark")) ? "true" : "false");
         params.put("enableSchemaResolver", StringUtil.isNotBlank(params.get("enableSchemaResolver")) ? "true" : "false");
+        String enableCDN = "false";
+        if (StringUtil.isNotBlank(params.get("enableCDN"))) {
+            if (!NetworkUtil.isInternetAvailable()) {
+                throw new BizException("无法访问互联网,不支持开启[CDN静态资源]");
+            }
+            enableCDN = "true";
+        }
+        params.put("enableCDN", enableCDN);
         String watermark = params.get("watermark");
         if (StringUtil.isNotBlank(watermark)) {
             Assert.isTrue(watermark.length() <= 64, "允许水印内容最多输入64个字.");

+ 34 - 0
dbsyncer-common/src/main/java/org/dbsyncer/common/util/NetworkUtil.java

@@ -0,0 +1,34 @@
+/**
+ * DBSyncer Copyright 2020-2025 All Rights Reserved.
+ */
+package org.dbsyncer.common.util;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * @Author 穿云
+ * @Version 1.0.0
+ * @Date 2025-03-06 00:42
+ */
+public abstract class NetworkUtil {
+
+    public static boolean isInternetAvailable() {
+        HttpURLConnection connection = null;
+        try {
+            URL url = new URL("https://www.baidu.com");
+            connection = (HttpURLConnection) url.openConnection();
+            connection.setConnectTimeout(5000);
+            connection.connect();
+            return connection.getResponseCode() == 200;
+        } catch (IOException e) {
+            return false;
+        } finally {
+            if (connection != null) {
+                connection.disconnect();
+            }
+        }
+    }
+
+}