From 780ff45fdc167cadf4724c6c94530929b7445aab Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 16 三月 2026 10:37:51 +0800
Subject: [PATCH] 完善许可证

---
 src/main/java/com/zy/system/entity/license/CustomLicenseManager.java |   98 ++++++------------------------------------------
 1 files changed, 13 insertions(+), 85 deletions(-)

diff --git a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
index 1ad2cc1..5d8a404 100644
--- a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
+++ b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -1,6 +1,5 @@
 package com.zy.system.entity.license;
 
-import com.core.common.Cools;
 import de.schlichtherle.license.*;
 import de.schlichtherle.xml.GenericCertificate;
 import org.apache.logging.log4j.LogManager;
@@ -11,7 +10,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
-import java.util.List;
 
 /**
  * 鑷畾涔塋icenseManager锛岀敤浜庡鍔犻澶栫殑鏈嶅姟鍣ㄧ‖浠朵俊鎭牎楠�
@@ -120,34 +118,20 @@
         //1. 棣栧厛璋冪敤鐖剁被鐨剉alidate鏂规硶
         super.validate(content);
 
-        //2. 鐒跺悗鏍¢獙鑷畾涔夌殑License鍙傛暟
-        //License涓彲琚厑璁哥殑鍙傛暟淇℃伅
-        LicenseCheck expectedCheckModel = (LicenseCheck) content.getExtra();
-        //褰撳墠鏈嶅姟鍣ㄧ湡瀹炵殑鍙傛暟淇℃伅
-        LicenseCheck serverCheckModel = getServerInfos();
+        Object extra = content.getExtra();
+        LicenseCheck serverCheckModel = LicenseUtils.getServerInfos();
 
-        if(expectedCheckModel != null && serverCheckModel != null){
-            //鏍¢獙IP鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑IP娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙Mac鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑Mac鍦板潃娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙涓绘澘搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑涓绘澘搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
-
-            //鏍¢獙CPU搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑CPU搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
-        }else{
+        if (serverCheckModel == null) {
             throw new LicenseContentException("涓嶈兘鑾峰彇鏈嶅姟鍣ㄧ‖浠朵俊鎭�");
+        }
+
+        if (!LicenseBindingSupport.isV2Extra(extra)) {
+            throw new LicenseContentException("璁稿彲璇佹牸寮忎笉鏀寔");
+        }
+
+        LicenseBindModel bindModel = LicenseBindingSupport.parseBindModel(extra);
+        if (!LicenseBindingSupport.matches(bindModel, serverCheckModel)) {
+            throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄤ笉鍦ㄦ巿鏉冭妭鐐硅寖鍥村唴");
         }
     }
 
@@ -182,60 +166,4 @@
         return null;
     }
 
-    /**
-     * 鑾峰彇褰撳墠鏈嶅姟鍣ㄩ渶瑕侀澶栨牎楠岀殑License鍙傛暟
-     */
-    private LicenseCheck getServerInfos(){
-        //鎿嶄綔绯荤粺绫诲瀷
-        String osName = System.getProperty("os.name").toLowerCase();
-        AbstractServerInfos abstractServerInfos = null;
-
-        //鏍规嵁涓嶅悓鎿嶄綔绯荤粺绫诲瀷閫夋嫨涓嶅悓鐨勬暟鎹幏鍙栨柟娉�
-        if (osName.startsWith("windows")) {
-            abstractServerInfos = new WindowsServerInfos();
-        } else if (osName.startsWith("linux")) {
-//            abstractServerInfos = new LinuxServerInfos();
-        }else{//鍏朵粬鏈嶅姟鍣ㄧ被鍨�
-            abstractServerInfos = new WindowsServerInfos();
-        }
-
-        return abstractServerInfos.getServerInfos();
-    }
-
-    /**
-     * 鏍¢獙褰撳墠鏈嶅姟鍣ㄧ殑IP/Mac鍦板潃鏄惁鍦ㄥ彲琚厑璁哥殑IP鑼冨洿鍐�<br/>
-     * 濡傛灉瀛樺湪IP鍦ㄥ彲琚厑璁哥殑IP/Mac鍦板潃鑼冨洿鍐咃紝鍒欒繑鍥瀟rue
-     */
-    private boolean checkIpAddress(List<String> expectedList,List<String> serverList){
-        if(expectedList != null && expectedList.size() > 0){
-            if(serverList != null && serverList.size() > 0){
-                for(String expected : expectedList){
-                    if(serverList.contains(expected.trim())){
-                        return true;
-                    }
-                }
-            }
-
-            return false;
-        }else {
-            return true;
-        }
-    }
-
-    /**
-     * 鏍¢獙褰撳墠鏈嶅姟鍣ㄧ‖浠讹紙涓绘澘銆丆PU绛夛級搴忓垪鍙锋槸鍚﹀湪鍙厑璁歌寖鍥村唴
-     */
-    private boolean checkSerial(String expectedSerial,String serverSerial){
-        if(!Cools.isEmpty(expectedSerial)){
-            if(!Cools.isEmpty(serverSerial)){
-                if(expectedSerial.equals(serverSerial)){
-                    return true;
-                }
-            }
-            return false;
-        }else{
-            return true;
-        }
-    }
-
-}
\ No newline at end of file
+}

--
Gitblit v1.9.1