自动化立体仓库 - WMS系统
zwl
昨天 780ff45fdc167cadf4724c6c94530929b7445aab
src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -1,6 +1,7 @@
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;
@@ -12,7 +13,6 @@
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.Date;
/**
@@ -40,19 +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) {
@@ -65,48 +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(licensePath);
                param.setPublicKeysStorePath(publicKeysStorePath);
                LicenseVerify licenseVerify = new LicenseVerify();
                //安装证书
                LicenseContent install = licenseVerify.install(param);
                logger.info("++++++++ 许可证加载结束 ++++++++");
                licenseTimer.setSystemSupport(install!=null);
                if (install != null) {
                    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 install != null;
            } catch (Exception e) {
                return false;
                licenseTimer.getRemoteLicense();
            } catch (Exception ignored) {
            }
        }
        licenseTimer.setSystemSupport(false);
        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;
        }
    }
}
}