From 686fe55892de7bf8d206cddbead77a5fbdb0e091 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 08 三月 2026 19:59:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/system/timer/LicenseTimer.java | 82 +++++++++++++++++++++++++++++-----------
1 files changed, 59 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/zy/system/timer/LicenseTimer.java b/src/main/java/com/zy/system/timer/LicenseTimer.java
index 758d92d..235a53c 100644
--- a/src/main/java/com/zy/system/timer/LicenseTimer.java
+++ b/src/main/java/com/zy/system/timer/LicenseTimer.java
@@ -52,6 +52,12 @@
@Value("${license.publicKeysStorePath}")
private String publicKeysStorePath;
+ /**
+ * 璁稿彲璇佹湇鍔$鍦板潃銆�
+ */
+ @Value("${license.remoteServerUrl:http://net.zoneyung.net:9999/license}")
+ private String remoteServerUrl;
+
@Autowired
private LicenseInfosService licenseInfosService;
@@ -73,24 +79,18 @@
public void getRemoteLicense() {
try {
+ String requestCode = LicenseUtils.buildRequestCode(subject);
LicenseCheck serverInfos = LicenseUtils.getServerInfos();
-
- HashMap<String, Object> map = new HashMap<>();
- map.put("subject", subject);
- map.put("licenseCheck", serverInfos);
-
- String response = new HttpHandler.Builder()
- .setUri("http://net.zoneyung.net:9999/license")
- .setPath("/remoteQueryLicense")
- .setJson(JSON.toJSONString(map))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getString("result").equals("ok")) {
+ JSONObject response = requestRemoteLicense(buildRequestCodePayload(requestCode));
+ if (!isSuccess(response)) {
+ response = requestRemoteLicense(buildLegacyPayload(serverInfos));
+ }
+ if (isSuccess(response)) {
LicenseInfos licenseInfos = new LicenseInfos();
- licenseInfos.setLicense(jsonObject.getString("data"));
+ licenseInfos.setLicense(response.getString("data"));
licenseInfos.setCreateTime(new Date());
- licenseInfos.setLicenseTime(jsonObject.getString("licenseTime"));
+ licenseInfos.setLicenseTime(response.getString("licenseTime"));
+ licenseInfos.setRequestCode(requestCode);
licenseInfosService.insert(licenseInfos);
}
} catch (Exception e) {
@@ -98,14 +98,42 @@
}
}
- public void verify() {
- LicenseInfos latestLicense = licenseInfosService.getLatestLicense();
- if (latestLicense == null) {
- setLicenseDays(0);
- setSystemSupport(false);
- return;
+ private JSONObject requestRemoteLicense(String json) {
+ try {
+ String response = new HttpHandler.Builder()
+ .setUri(remoteServerUrl)
+ .setPath("/remoteQueryLicense")
+ .setJson(json)
+ .build()
+ .doPost();
+ if (response == null || response.trim().isEmpty()) {
+ return null;
+ }
+ return JSON.parseObject(response);
+ } catch (Exception e) {
+ return null;
}
+ }
+ private String buildRequestCodePayload(String requestCode) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("subject", subject);
+ map.put("requestCode", requestCode);
+ return JSON.toJSONString(map);
+ }
+
+ private String buildLegacyPayload(LicenseCheck serverInfos) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("subject", subject);
+ map.put("licenseCheck", serverInfos);
+ return JSON.toJSONString(map);
+ }
+
+ private boolean isSuccess(JSONObject jsonObject) {
+ return jsonObject != null && "ok".equalsIgnoreCase(jsonObject.getString("result"));
+ }
+
+ public void verify() {
LicenseVerifyParam param = new LicenseVerifyParam();
param.setSubject(subject);
param.setPublicAlias(publicAlias);
@@ -113,10 +141,18 @@
param.setLicensePath(licensePath);
param.setPublicKeysStorePath(publicKeysStorePath);
+ String requestCode = LicenseUtils.buildRequestCode(subject);
+ LicenseInfos latestLicense = licenseInfosService.getLatestLicenseByRequestCode(requestCode);
+
// 楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
LicenseVerify licenseVerify = new LicenseVerify();
- // 瀹夎璇佷功
- LicenseContent install = licenseVerify.install(param, latestLicense.getLicense());
+ LicenseContent install = null;
+ if (latestLicense != null) {
+ install = licenseVerify.install(param, latestLicense.getLicense());
+ }
+ if (install == null) {
+ install = licenseVerify.install(param);
+ }
if (install != null) {
Date start = new Date();
--
Gitblit v1.9.1