wisdomisite-java/src/main/java/com/license/service/impl/LicenseServiceImpl.java
2023-06-28 17:12:24 +08:00

110 lines
3.5 KiB
Java

package com.license.service.impl;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.io.FileUtil;
import com.license.entity.dto.*;
import com.license.service.LicenseService;
import com.zhgd.xmgl.util.Base64Util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @author 邱平毅
* @ClassName LicenseServiceImpl
* @date 2022/9/20 9:42
* @Version 1.0
*/
@Slf4j
@Service
public class LicenseServiceImpl implements LicenseService {
@Value("${license.publicKeysStorePath:}")
String publicKeysStorePath;
@Value("${license.licensePath:}")
String licensePath;
/**
* 证书subject
*/
private String subject = "zhgd";
/**
* 公钥别称
*/
private String publicAlias = "publicCert";
/**
* 访问公钥库的密码
*/
private String storePass = "public_password1234";
@Value("${is-license}")
private Boolean isLicense;
@Override
public void installLicense() throws Exception {
if (isLicense) {
if (StringUtils.isNotBlank(licensePath)) {
log.info("++++++++ 开始安装证书 ++++++++");
LicenseVerifyParam param = new LicenseVerifyParam();
param.setSubject(subject);
param.setPublicAlias(publicAlias);
param.setStorePass(storePass);
param.setLicensePath(licensePath);
param.setPublicKeysStorePath(publicKeysStorePath);
LicenseVerify licenseVerify = new LicenseVerify();
//安装证书
licenseVerify.install(param);
log.info("++++++++ 证书安装结束 ++++++++");
}
}
}
/**
* 获取服务器硬件信息
*/
@Override
public LicenseCheckModel getServerInfos() {
log.info("获取硬件信息中,当前时间:{}", LocalDateTimeUtil.now());
//操作系统类型
String osName = System.getProperty("os.name").toLowerCase();
AbstractServerInfos abstractServerInfos;
//根据不同操作系统类型选择不同的数据获取方法
if (osName.startsWith("windows")) {
abstractServerInfos = new WindowsServerInfos();
} else if (osName.startsWith("linux")) {
abstractServerInfos = new LinuxServerInfos();
} else {//其他服务器类型
abstractServerInfos = new LinuxServerInfos();
}
return abstractServerInfos.getServerInfos();
}
@Override
public void upload(Map fileBaseMap) throws Exception {
log.info("授权中,接下来打开新的大门");
String pubDir = publicKeysStorePath.substring(0, publicKeysStorePath.lastIndexOf("/"));
String pubName = publicKeysStorePath.substring(publicKeysStorePath.lastIndexOf("/") + 1);
Base64Util.convertBase64ToFile(fileBaseMap.get("pub").toString(), pubDir, pubName);
String licDir = licensePath.substring(0, licensePath.lastIndexOf("/"));
String licName = licensePath.substring(licensePath.lastIndexOf("/") + 1);
Base64Util.convertBase64ToFile(fileBaseMap.get("lic").toString(), licDir, licName);
installLicense();
}
@Override
public void removeLicense() {
log.info("清除程序授权中···");
FileUtil.del(licensePath);
FileUtil.del(publicKeysStorePath);
LicenseManagerHolder.setLicenseManager(null);
}
}