Commit e1f34e91 by liuzz

license

parent cd60d6a2
......@@ -10,11 +10,12 @@ import global.namespace.truelicense.obfuscate.ObfuscatedString;
import global.namespace.truelicense.v4.V4;
import javax.security.auth.x500.X500Principal;
import java.util.Date;
public class LicenseGenerator {
private static final String SUBJECT = "HIP";
private static final String DISTINGUISHED_NAME = "CN=TBYF HIP";
private static final String DISTINGUISHED_NAME = "CN=TBYF";
private static final String KEY_STORE_FILE = "private.ks";
private static final LicenseManagementContext _managementContext = V4
......@@ -55,9 +56,16 @@ public class LicenseGenerator {
public void generate(LicenseParams params) throws LicenseManagementException {
VendorLicenseManager manager = manager();
License license = manager.parameters().licenseFactory().license();
license.setNotBefore(params.getStartDate());
license.setNotAfter(params.getExpirationDate());
license.setExtra(params.getMAC());
license.setConsumerAmount(1); // 消费者数量
license.setConsumerType(""); // business-企业 personally-个人 project-项目
license.setHolder(new X500Principal(DISTINGUISHED_NAME)); // 许可证持有者的唯一标识
license.setIssuer(new X500Principal(DISTINGUISHED_NAME)); // 许可证颁发者的唯一标识
license.setInfo("TBYF HIP License"); // 面向用户的说明文本
license.setIssued(new Date()); // 许可证颁发日期
license.setNotBefore(new Date()); // 许可证生效日期
license.setNotAfter(new Date()); // 许可证失效日期
license.setSubject("CentralPharmacy-v1"); // 许可证管理的目标(如应用名称和版本范围 "MyApp 1.X")
license.setExtra(params.getMAC()); // 私有数据,如MAC地址
manager.generateKeyFrom(license)
.saveTo(BIOS.file(params.getLicensePath()));
}
......
package com.tbyf.license;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import java.util.Calendar;
import java.util.Date;
@Builder
@Data
public class LicenseParams {
@Getter
private String licensePath;
/**
* 开始日期
*/
private Date startDate;
// 有效天数
/**
* license有效天数
*/
private int validity;
private Date expirationDate;
@Getter
private String MAC; // MAC硬件地址
public Date getExpirationDate() {
Date ed = this.expirationDate;
return null != ed ? ed : calculateExpirationDate();
}
public Date getStartDate() {
Date sd = this.startDate;
return null != sd ? sd : new Date();
}
private Date calculateExpirationDate() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getStartDate());
calendar.add(Calendar.DAY_OF_YEAR, this.validity);
return calendar.getTime();
}
/**
* 授权数量
*/
private int amount = 1;
/**
* 授权类型 business-企业 personally-个人 project-项目
*/
private String type = "business";
/**
* 授权信息
*/
private String info = "tbyf hip license";
/**
* 应用名称
*/
private String appName;
/**
* 授权使用的版本
*/
private String version;
/**
* 授权使用的MAC地址, *为所有mac都支持
*/
private String mac = "*";
/**
* 需要限制的url, *为所有url都支持
*/
private String urls;
}
......@@ -14,10 +14,10 @@ class LicenseGeneratorTest {
LicenseGenerator licenseGenerator = new LicenseGenerator();
licenseGenerator.generate(
LicenseParams.builder()
.licensePath("xyz.lic")
.licensePath("dev.lic")
.validity(3)
// .expirationDate(toDate("2024-01-11 15:12:00"))
.MAC("CC-F9-E4-97-CA-48,CC-F9-E4-97-CA-49, CC-F9-E4-97-CA-50")
.MAC("14-75-5B-E3-DE-1F")
.build());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment