Commit 9cea664d by hy

.

parent 6a33a251
......@@ -28,5 +28,11 @@
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<optional>true</optional>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -23,6 +23,7 @@ public class LicenseManager {
private static final LicenseManagementContext _managementContext = V4
.builder()
.initialization(license -> {
license.setSubject(SUBJECT);
license.setIssuer(new X500Principal(DISTINGUISHED_NAME));
})
.subject(SUBJECT)
......@@ -54,12 +55,14 @@ public class LicenseManager {
return new ObfuscatedPasswordProtection(new ObfuscatedString(longs));
}
public void generate(String file) throws LicenseManagementException {
public void generate(LicenseParams params) throws LicenseManagementException {
VendorLicenseManager manager = manager();
License license = manager.parameters().licenseFactory().license();
license.setExtra("2333");
license.setNotBefore(params.getStartDate());
license.setNotAfter(params.getExpirationDate());
license.setExtra(params.getMAC());
manager.generateKeyFrom(license)
.saveTo(BIOS.file(file));
.saveTo(BIOS.file(params.getFilename()));
}
}
package com.tbyf.license;
import lombok.Builder;
import lombok.Getter;
import java.util.Calendar;
import java.util.Date;
@Builder
public class LicenseParams {
@Getter
private String filename;
private Date startDate;
// 有效天数
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();
}
}
......@@ -3,12 +3,21 @@ package com.tbyf.license;
import global.namespace.truelicense.api.LicenseManagementException;
import org.junit.jupiter.api.Test;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.*;
class LicenseManagerTest {
@Test
void generate() throws LicenseManagementException {
new LicenseManager().generate("hip.lic");
new LicenseManager()
.generate(LicenseParams
.builder()
.filename("hip.lic")
.startDate(new Date())
.validity(5)
.MAC("CC-F9-E4-97-CA-48")
.build());
}
}
\ No newline at end of file
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