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/LicenseCheckListener.java | 95 +++++++++++++++++++++++++++++------------------
1 files changed, 58 insertions(+), 37 deletions(-)
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 1659df2..653d493 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -1,16 +1,19 @@
package com.zy.system.entity.license;
-import com.core.common.Cools;
+import com.zy.system.entity.LicenseInfos;
+import com.zy.system.service.LicenseInfosService;
+import com.zy.system.timer.LicenseTimer;
import de.schlichtherle.license.LicenseContent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
-import java.io.File;
+import java.util.Date;
/**
* 鍦ㄩ」鐩惎鍔ㄦ椂瀹夎璇佷功
@@ -37,17 +40,12 @@
@Value("${license.storePass}")
private String storePass;
- /**
- * 璇佷功鐢熸垚璺緞
- */
- @Value("${license.licensePath}")
- private String licensePath;
-
- /**
- * 瀵嗛挜搴撳瓨鍌ㄨ矾寰�
- */
@Value("${license.publicKeysStorePath}")
private String publicKeysStorePath;
+ @Autowired
+ private LicenseTimer licenseTimer;
+ @Autowired
+ private LicenseInfosService licenseInfosService;
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
@@ -60,35 +58,58 @@
//鍔犺浇璇佷功
public boolean loadLicense() {
- if(!Cools.isEmpty(licensePath)){
- logger.info("++++++++ 寮�濮嬪姞杞借鍙瘉 ++++++++");
+ return loadLicense(true);
+ }
+ public boolean loadLicense(boolean fetchRemote) {
+ logger.info("++++++++ 寮�濮嬪姞杞借鍙瘉 ++++++++");
+
+ if (fetchRemote) {
try {
- String publicKeysStoreFileName = this.getClass().getClassLoader().getResource(publicKeysStorePath).getPath();
- File publicKeysStoreFile = new File(publicKeysStoreFileName);
-
- String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath();
- File licensePathFile = new File(licensePathFileName);
-
- LicenseVerifyParam param = new LicenseVerifyParam();
- param.setSubject(subject);
- param.setPublicAlias(publicAlias);
- param.setStorePass(storePass);
- param.setLicensePath(licensePathFile.getPath());
- param.setPublicKeysStorePath(publicKeysStoreFile.getPath());
-
- LicenseVerify licenseVerify = new LicenseVerify();
- //瀹夎璇佷功
- LicenseContent install = licenseVerify.install(param);
-
- logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
-
- return install != null;
- } catch (Exception e) {
- return false;
+ licenseTimer.getRemoteLicense();
+ } catch (Exception ignored) {
}
}
- return false;
+ try {
+ LicenseVerifyParam param = new LicenseVerifyParam();
+ param.setSubject(subject);
+ param.setPublicAlias(publicAlias);
+ param.setStorePass(storePass);
+ param.setPublicKeysStorePath(publicKeysStorePath);
+
+ LicenseVerify licenseVerify = new LicenseVerify();
+ String requestCode = LicenseUtils.buildRequestCode(subject);
+ LicenseInfos latestLicense = licenseInfosService.getLatestLicenseByRequestCode(requestCode);
+
+ LicenseContent install = null;
+ if (latestLicense != null && latestLicense.getLicense() != null && !latestLicense.getLicense().trim().isEmpty()) {
+ install = licenseVerify.install(param, latestLicense.getLicense().trim());
+ }
+ if (install == null) {
+ logger.info("璁稿彲璇佷笉瀛樺湪");
+ licenseTimer.setSystemSupport(false);
+ licenseTimer.setLicenseDays(0);
+ return false;
+ }
+
+ logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
+
+ licenseTimer.setSystemSupport(true);
+
+ Date start = new Date();
+ Date end = install.getNotAfter();
+ Long starTime = start.getTime();
+ Long endTime = end.getTime();
+ Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
+ int day = (int) (num / 24 / 60 / 60 / 1000);
+ licenseTimer.setLicenseDays(day);
+ return true;
+ } catch (Exception e) {
+ logger.error("璁稿彲璇佸姞杞藉け璐�", e);
+ licenseTimer.setSystemSupport(false);
+ licenseTimer.setLicenseDays(0);
+ return false;
+ }
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.1