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/controller/LicenseCreatorController.java | 116 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 68 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/zy/system/controller/LicenseCreatorController.java b/src/main/java/com/zy/system/controller/LicenseCreatorController.java
index 0817de4..4ecd3b0 100644
--- a/src/main/java/com/zy/system/controller/LicenseCreatorController.java
+++ b/src/main/java/com/zy/system/controller/LicenseCreatorController.java
@@ -1,19 +1,21 @@
package com.zy.system.controller;
-import com.core.common.Cools;
import com.core.common.R;
+import com.zy.system.entity.LicenseInfos;
import com.zy.system.entity.license.*;
+import com.zy.system.service.LicenseInfosService;
import com.zy.system.timer.LicenseTimer;
+import de.schlichtherle.license.LicenseContent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-import java.io.File;
-import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
/**
*
@@ -25,36 +27,35 @@
@Value("${license.subject}")
private String licenseSubject;
+ @Value("${license.publicAlias}")
+ private String publicAlias;
+ @Value("${license.storePass}")
+ private String storePass;
@Value("${license.licensePath}")
private String licensePath;
+ @Value("${license.publicKeysStorePath}")
+ private String publicKeysStorePath;
@Autowired
private LicenseCheckListener licenseCheckListener;
@Autowired
private LicenseTimer licenseTimer;
+ @Autowired
+ private LicenseInfosService licenseInfosService;
/**
* 鑾峰彇鏈嶅姟鍣ㄧ‖浠朵俊鎭�
* @param osName 鎿嶄綔绯荤粺绫诲瀷锛屽鏋滀负绌哄垯鑷姩鍒ゆ柇
*/
@RequestMapping(value = "/getServerInfos",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public LicenseCheck getServerInfos(@RequestParam(value = "osName",required = false) String osName) {
- //鎿嶄綔绯荤粺绫诲瀷
- if(Cools.isEmpty(osName)){
- osName = System.getProperty("os.name");
- }
- osName = osName.toLowerCase();
+ return LicenseUtils.getServerInfos();
+ }
- 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();
+ /**
+ * 鑾峰彇璇锋眰鐮併��
+ */
+ @RequestMapping(value = "/getRequestCode")
+ public R getRequestCode() {
+ return R.ok(LicenseUtils.buildRequestCode(licenseSubject));
}
/**
@@ -69,42 +70,46 @@
return R.ok().add(licenseDays);
}
- @RequestMapping(value = "/updateLicense")
- public R updateLicense(@RequestParam("file") MultipartFile[] files){
- MultipartFile file = files[0];
-
- String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath();
- File licensePathFile = new File(licensePathFileName);
- //鏈嶅姟鍣ㄧ淇濆瓨鐨勬枃浠跺璞�
- File serverFile = new File(licensePathFile.getPath());
- if (serverFile.exists()) {
- try {
- serverFile.delete();//瀛樺湪鏂囦欢锛屽垹闄�
- } catch (Exception e) {
- e.printStackTrace();
- }
+ @RequestMapping(value = "/updateLicense", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
+ public R updateLicense(@RequestBody LicenseUploadParam param){
+ if (param == null || param.getLicense() == null || param.getLicense().trim().isEmpty()) {
+ return R.error("璁稿彲璇佸唴瀹逛笉鑳戒负绌�");
}
- try {
- //鍒涘缓鏂囦欢
- serverFile.createNewFile();
- //灏嗕笂浼犵殑鏂囦欢鍐欏叆鍒版湇鍔″櫒绔枃浠跺唴
- file.transferTo(serverFile);
- } catch (IOException e) {
- e.printStackTrace();
+ String licenseBase64 = param.getLicense().trim();
+ LicenseVerifyParam verifyParam = buildVerifyParam();
+ LicenseVerify licenseVerify = new LicenseVerify();
+ LicenseContent install = licenseVerify.install(verifyParam, licenseBase64);
+ if (install == null) {
+ return R.error("璁稿彲璇佸唴瀹规棤鏁�");
}
- //閲嶆柊鍔犺浇璁稿彲璇�
- boolean loadedLicense = licenseCheckListener.loadLicense();
- if (loadedLicense) {
- return R.ok();
+ LicenseInfos licenseInfos = new LicenseInfos();
+ licenseInfos.setLicense(licenseBase64);
+ licenseInfos.setLicenseTime(formatLicenseTime(install));
+ licenseInfos.setRequestCode(LicenseUtils.buildRequestCode(licenseSubject));
+ licenseInfos.setCreateTime(new Date());
+ if (!licenseInfosService.save(licenseInfos)) {
+ return R.error("璁稿彲璇佷繚瀛樺け璐�");
}
- return R.error("璁稿彲璇佹洿鏂板け璐�");
+
+ boolean loadedLicense = licenseCheckListener.loadLicense(false);
+ if (!loadedLicense) {
+ return R.error("璁稿彲璇佹縺娲诲け璐�");
+ }
+ licenseTimer.verify();
+ if (!licenseTimer.getSystemSupport()) {
+ return R.error("璁稿彲璇佹牎楠屽け璐�");
+ }
+ return R.ok();
}
@RequestMapping(value = "/activate")
public R activate() {
licenseTimer.timer();
+ if (!licenseTimer.getSystemSupport()) {
+ return R.error("璁稿彲璇佹縺娲诲け璐�");
+ }
return R.ok();
}
@@ -113,4 +118,19 @@
return R.ok(licenseSubject);
}
-}
\ No newline at end of file
+ private LicenseVerifyParam buildVerifyParam() {
+ LicenseVerifyParam param = new LicenseVerifyParam();
+ param.setSubject(licenseSubject);
+ param.setPublicAlias(publicAlias);
+ param.setStorePass(storePass);
+ param.setLicensePath(licensePath);
+ param.setPublicKeysStorePath(publicKeysStorePath);
+ return param;
+ }
+
+ private String formatLicenseTime(LicenseContent install) {
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return format.format(install.getNotBefore()) + " - " + format.format(install.getNotAfter());
+ }
+
+}
--
Gitblit v1.9.1