| | |
| | | package com.zy.asrs.wms.system.license.entity.license; |
| | | |
| | | import de.schlichtherle.license.*; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | | import javax.security.auth.x500.X500Principal; |
| | | import java.io.File; |
| | | import java.text.MessageFormat; |
| | | import java.util.prefs.Preferences; |
| | | |
| | | /** |
| | | * License生成类 |
| | | */ |
| | | public class LicenseCreator { |
| | | private static Logger logger = LogManager.getLogger(LicenseCreator.class); |
| | | private final static X500Principal DEFAULT_HOLDER_AND_ISSUER = new X500Principal("CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"); |
| | | private LicenseCreatorParam param; |
| | | |
| | | public LicenseCreator(LicenseCreatorParam param) { |
| | | this.param = param; |
| | | } |
| | | |
| | | /** |
| | | * 生成License证书 |
| | | */ |
| | | public boolean generateLicense(){ |
| | | try { |
| | | LicenseManager licenseManager = new CustomLicenseManager(initLicenseParam()); |
| | | LicenseContent licenseContent = initLicenseContent(); |
| | | |
| | | licenseManager.store(licenseContent,new File(param.getLicensePath())); |
| | | |
| | | return true; |
| | | }catch (Exception e){ |
| | | logger.error(MessageFormat.format("证书生成失败:{0}",param),e); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 初始化证书生成参数 |
| | | */ |
| | | private LicenseParam initLicenseParam(){ |
| | | Preferences preferences = Preferences.userNodeForPackage(LicenseCreator.class); |
| | | |
| | | //设置对证书内容加密的秘钥 |
| | | CipherParam cipherParam = new DefaultCipherParam(param.getStorePass()); |
| | | |
| | | KeyStoreParam privateStoreParam = new CustomKeyStoreParam(LicenseCreator.class |
| | | ,param.getPrivateKeysStorePath() |
| | | ,param.getPrivateAlias() |
| | | ,param.getStorePass() |
| | | ,param.getKeyPass()); |
| | | |
| | | LicenseParam licenseParam = new DefaultLicenseParam(param.getSubject() |
| | | ,preferences |
| | | ,privateStoreParam |
| | | ,cipherParam); |
| | | |
| | | return licenseParam; |
| | | } |
| | | |
| | | /** |
| | | * 设置证书生成正文信息 |
| | | */ |
| | | private LicenseContent initLicenseContent(){ |
| | | LicenseContent licenseContent = new LicenseContent(); |
| | | licenseContent.setHolder(DEFAULT_HOLDER_AND_ISSUER); |
| | | licenseContent.setIssuer(DEFAULT_HOLDER_AND_ISSUER); |
| | | |
| | | licenseContent.setSubject(param.getSubject()); |
| | | licenseContent.setIssued(param.getIssuedTime()); |
| | | licenseContent.setNotBefore(param.getIssuedTime()); |
| | | licenseContent.setNotAfter(param.getExpiryTime()); |
| | | licenseContent.setConsumerType(param.getConsumerType()); |
| | | licenseContent.setConsumerAmount(param.getConsumerAmount()); |
| | | licenseContent.setInfo(param.getDescription()); |
| | | |
| | | //扩展校验服务器硬件信息 |
| | | licenseContent.setExtra(param.getLicenseCheck()); |
| | | |
| | | return licenseContent; |
| | | } |
| | | |
| | | package com.zy.asrs.wms.system.license.entity.license;
|
| | |
|
| | | import de.schlichtherle.license.*;
|
| | | import org.apache.logging.log4j.LogManager;
|
| | | import org.apache.logging.log4j.Logger;
|
| | |
|
| | | import javax.security.auth.x500.X500Principal;
|
| | | import java.io.File;
|
| | | import java.text.MessageFormat;
|
| | | import java.util.prefs.Preferences;
|
| | |
|
| | | /**
|
| | | * License生成类
|
| | | */
|
| | | public class LicenseCreator {
|
| | | private static Logger logger = LogManager.getLogger(LicenseCreator.class);
|
| | | private final static X500Principal DEFAULT_HOLDER_AND_ISSUER = new X500Principal("CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN");
|
| | | private LicenseCreatorParam param;
|
| | |
|
| | | public LicenseCreator(LicenseCreatorParam param) {
|
| | | this.param = param;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 生成License证书
|
| | | */
|
| | | public boolean generateLicense(){
|
| | | try {
|
| | | LicenseManager licenseManager = new CustomLicenseManager(initLicenseParam());
|
| | | LicenseContent licenseContent = initLicenseContent();
|
| | |
|
| | | licenseManager.store(licenseContent,new File(param.getLicensePath()));
|
| | |
|
| | | return true;
|
| | | }catch (Exception e){
|
| | | logger.error(MessageFormat.format("证书生成失败:{0}",param),e);
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 初始化证书生成参数
|
| | | */
|
| | | private LicenseParam initLicenseParam(){
|
| | | Preferences preferences = Preferences.userNodeForPackage(LicenseCreator.class);
|
| | |
|
| | | //设置对证书内容加密的秘钥
|
| | | CipherParam cipherParam = new DefaultCipherParam(param.getStorePass());
|
| | |
|
| | | KeyStoreParam privateStoreParam = new CustomKeyStoreParam(LicenseCreator.class
|
| | | ,param.getPrivateKeysStorePath()
|
| | | ,param.getPrivateAlias()
|
| | | ,param.getStorePass()
|
| | | ,param.getKeyPass());
|
| | |
|
| | | LicenseParam licenseParam = new DefaultLicenseParam(param.getSubject()
|
| | | ,preferences
|
| | | ,privateStoreParam
|
| | | ,cipherParam);
|
| | |
|
| | | return licenseParam;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 设置证书生成正文信息
|
| | | */
|
| | | private LicenseContent initLicenseContent(){
|
| | | LicenseContent licenseContent = new LicenseContent();
|
| | | licenseContent.setHolder(DEFAULT_HOLDER_AND_ISSUER);
|
| | | licenseContent.setIssuer(DEFAULT_HOLDER_AND_ISSUER);
|
| | |
|
| | | licenseContent.setSubject(param.getSubject());
|
| | | licenseContent.setIssued(param.getIssuedTime());
|
| | | licenseContent.setNotBefore(param.getIssuedTime());
|
| | | licenseContent.setNotAfter(param.getExpiryTime());
|
| | | licenseContent.setConsumerType(param.getConsumerType());
|
| | | licenseContent.setConsumerAmount(param.getConsumerAmount());
|
| | | licenseContent.setInfo(param.getDescription());
|
| | |
|
| | | //扩展校验服务器硬件信息
|
| | | licenseContent.setExtra(param.getLicenseCheck());
|
| | |
|
| | | return licenseContent;
|
| | | }
|
| | |
|
| | | } |