Commit 9cea664d by hy

.

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