| | |
| | | package com.zy.asrs.wms.system.license; |
| | | |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.wms.system.license.entity.license.LicenseVerify; |
| | | import com.zy.asrs.wms.system.license.entity.license.LicenseVerifyParam; |
| | | import com.zy.asrs.wms.system.license.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<ContextRefreshedEvent> { |
| | | 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.licensePath}") |
| | | private String licensePath; |
| | | |
| | | /** |
| | | * 密钥库存储路径 |
| | | */ |
| | | @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() { |
| | | if(!Cools.isEmpty(licensePath)){ |
| | | logger.info("++++++++ 开始加载许可证 ++++++++"); |
| | | |
| | | 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.setSystemSupport(false); |
| | | return false; |
| | | } |
| | | package com.zy.asrs.wms.system.license;
|
| | |
|
| | | import com.zy.asrs.framework.common.Cools;
|
| | | import com.zy.asrs.wms.system.license.entity.license.LicenseVerify;
|
| | | import com.zy.asrs.wms.system.license.entity.license.LicenseVerifyParam;
|
| | | import com.zy.asrs.wms.system.license.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<ContextRefreshedEvent> {
|
| | | 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.licensePath}")
|
| | | private String licensePath;
|
| | |
|
| | | /**
|
| | | * 密钥库存储路径
|
| | | */
|
| | | @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() {
|
| | | if(!Cools.isEmpty(licensePath)){
|
| | | logger.info("++++++++ 开始加载许可证 ++++++++");
|
| | |
|
| | | 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.setSystemSupport(false);
|
| | | return false;
|
| | | }
|
| | | } |