From a4f07b2a0ddb6c210e05afbbb491feeb466203e7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 09 三月 2026 19:15:50 +0800
Subject: [PATCH] #V3重大更新,升级JDK17,升级SpirngBoot3.5.1
---
src/main/java/com/zy/system/entity/license/LicenseCheckListener.java | 69 ++++++++++++++++++++++++++++++----
1 files changed, 60 insertions(+), 9 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 7721c02..355abf2 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -16,6 +16,9 @@
import org.springframework.stereotype.Component;
import java.io.File;
+import java.nio.file.Files;
+import java.text.SimpleDateFormat;
+import java.util.Base64;
import java.util.Date;
/**
@@ -72,12 +75,18 @@
//鍔犺浇璇佷功
public boolean loadLicense() {
+ return loadLicense(true);
+ }
+
+ public boolean loadLicense(boolean fetchRemote) {
if(!Cools.isEmpty(licensePath)){
logger.info("++++++++ 寮�濮嬪姞杞借鍙瘉 ++++++++");
- try {
- licenseTimer.getRemoteLicense();
- } catch (Exception e) {
+ if (fetchRemote) {
+ try {
+ licenseTimer.getRemoteLicense();
+ } catch (Exception e) {
+ }
}
try {
@@ -89,15 +98,23 @@
param.setPublicKeysStorePath(publicKeysStorePath);
LicenseVerify licenseVerify = new LicenseVerify();
+ String requestCode = LicenseUtils.buildRequestCode(subject);
+ LicenseInfos latestLicense = licenseInfosService.getLatestLicenseByRequestCode(requestCode);
- LicenseInfos latestLicense = licenseInfosService.getLatestLicense();
- if (latestLicense == null) {
+ LicenseContent install = null;
+ if (latestLicense != null) {
+ install = licenseVerify.install(param, latestLicense.getLicense());
+ }
+ if (install == null) {
+ install = licenseVerify.install(param);
+ if (install != null) {
+ cacheLocalLicense(requestCode, install);
+ }
+ }
+ if (install == null) {
logger.info("璁稿彲璇佷笉瀛樺湪");
return false;
}
-
- //瀹夎璇佷功
- LicenseContent install = licenseVerify.install(param, latestLicense.getLicense());
logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
@@ -127,4 +144,38 @@
licenseTimer.setSystemSupport(false);
return false;
}
-}
\ No newline at end of file
+
+ private void cacheLocalLicense(String requestCode, LicenseContent install) {
+ try {
+ File licenseFile = resolveLicenseFile();
+ if (licenseFile == null || !licenseFile.exists()) {
+ return;
+ }
+ LicenseInfos licenseInfos = new LicenseInfos();
+ licenseInfos.setLicense(Base64.getEncoder().encodeToString(Files.readAllBytes(licenseFile.toPath())));
+ licenseInfos.setLicenseTime(formatLicenseTime(install));
+ licenseInfos.setRequestCode(requestCode);
+ licenseInfos.setCreateTime(new Date());
+ licenseInfosService.save(licenseInfos);
+ } catch (Exception ignored) {
+ }
+ }
+
+ private File resolveLicenseFile() {
+ try {
+ if (this.getClass().getClassLoader().getResource(licensePath) != null) {
+ return new File(this.getClass().getClassLoader().getResource(licensePath).toURI());
+ }
+ } catch (Exception ignored) {
+ }
+ return new File(licensePath);
+ }
+
+ private String formatLicenseTime(LicenseContent install) {
+ if (install == null) {
+ return "";
+ }
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return format.format(install.getNotBefore()) + " - " + format.format(install.getNotAfter());
+ }
+}
--
Gitblit v1.9.1