#
Junjie
2 天以前 686fe55892de7bf8d206cddbead77a5fbdb0e091
src/main/java/com/zy/system/entity/license/LicenseVerify.java
@@ -6,6 +6,7 @@
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.DateFormat;
@@ -35,6 +36,28 @@
            File tempFileFromBase64 = createTempFileFromBase64(license);
            result = licenseManager.install(tempFileFromBase64);
            logger.info(MessageFormat.format("许可证加载成功,许可证有效期:{0} - {1}", format.format(result.getNotBefore()), format.format(result.getNotAfter())));
        } catch (Exception e) {
            logger.error("许可证加载失败!", e);
        }
        return result;
    }
    public synchronized LicenseContent install(LicenseVerifyParam param) {
        LicenseContent result = null;
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            LicenseParam licenseParam = initLicenseParam(param);
            LicenseManager licenseManager = LicenseManagerHolder.getInstance(licenseParam);
            licenseManager.uninstall();
            File licenseFile = resolveLicenseFile(param.getLicensePath());
            if (licenseFile == null || !licenseFile.exists()) {
                return null;
            }
            result = licenseManager.install(licenseFile);
            logger.info(MessageFormat.format("许可证加载成功,许可证有效期:{0} - {1}", format.format(result.getNotBefore()), format.format(result.getNotAfter())));
        } catch (Exception e) {
            logger.error("许可证加载失败!", e);
@@ -123,4 +146,15 @@
        return base64ToTempFile(base64Data, "temp_license_", ".bin");
    }
}
    private File resolveLicenseFile(String licensePath) {
        try {
            URL url = this.getClass().getClassLoader().getResource(licensePath);
            if (url != null) {
                return new File(url.toURI());
            }
        } catch (Exception ignored) {
        }
        return new File(licensePath);
    }
}