package com.zy.system.entity.license; import com.core.common.Cools; import com.zy.system.timer.LicenseTimer; import de.schlichtherle.license.LicenseContent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; import java.io.File; import java.util.Date; /** * 在项目启动时安装证书 */ @Component public class LicenseCheckListener implements ApplicationListener { private static Logger logger = LogManager.getLogger(LicenseCheckListener.class); /** * 证书subject */ @Value("${license.subject}") private String subject; /** * 公钥别称 */ @Value("${license.publicAlias}") private String publicAlias; /** * 访问公钥库的密码 */ @Value("${license.storePass}") private String storePass; /** * 密钥库存储路径 */ @Value("${license.publicKeysStorePath}") private String publicKeysStorePath; @Autowired private LicenseTimer licenseTimer; @Override public void onApplicationEvent(ContextRefreshedEvent event) { //root application context 没有parent ApplicationContext context = event.getApplicationContext().getParent(); if(context == null){ loadLicense(); } } //加载证书 public boolean loadLicense() { logger.info("++++++++ 开始加载许可证 ++++++++"); try { LicenseVerifyParam param = new LicenseVerifyParam(); param.setSubject(subject); param.setPublicAlias(publicAlias); param.setStorePass(storePass); param.setPublicKeysStorePath(publicKeysStorePath); licenseTimer.timer(); logger.info("++++++++ 许可证加载结束 ++++++++"); logger.info("++++++++ 许可证加载标记,搜索修改 ++++++++"); // licenseTimer.setSystemSupport(true); // licenseTimer.setLicenseDays(9999); return true; } catch (Exception e) { return false; } } }