一、简介
TrueLicense是一款基于Java的许可证管理工具,由于其简单易用、支持多种许可证方式以及轻量级的特点,越来越受到Java开发人员的关注。
二、特点
1、开源:TrueLicense源代码完全开放,可以自由修改,满足各种许可证需求。
2、易用:TrueLicense提供简单易懂的许可证配置文件,并且支持JDK6及以上版本。只需通过添加依赖和简单的配置即可完成许可证的管理。
3、高效:TrueLicense提供高效的加密解密算法,保护您的应用程序不被黑客攻击。
三、许可证方式
1、基于URL的许可证:在应用程序启动时,TrueLicense会自动从指定的URL地址下载并验证许可证。
2、基于加密密钥的许可证:在应用程序启动时,TrueLicense会验证密钥是否正确,以确定应用程序是否可以使用。
3、基于硬件参数的许可证:TrueLicense会对应用程序所在设备的硬件参数进行加密并验证,以确定应用程序是否可以使用。
//基于URL的许可证配置文件
license.url=http://www.example.com/license.xml
license.subject=product1
//基于加密密钥的许可证配置文件
license.key.store=classpath:/keys/license.keystore
license.key.alias=license
license.key.store.password=licenseStorePassword
license.key.alias.password=licenseKeyPassword
//基于硬件参数的许可证配置文件
license.hardness=123456
license.subject=product1
四、快速上手
1、添加TrueLicense依赖:
<dependency>
<groupId>org.truelicense</groupId>
<artifactId>truelicense-core</artifactId>
<version>4.3.0.Final</version>
</dependency>
2、添加TrueLicense插件:
<build>
<plugins>
<plugin>
<groupId>org.truelicense</groupId>
<artifactId>truelicense-maven-plugin</artifactId>
<version>4.3.0.Final</version>
<executions>
<execution>
<id>generate-key</id>
<goals>
<goal>generate-key</goal>
</goals>
</execution>
<execution>
<id>encrypt-license</id>
<goals>
<goal>encrypt-license</goal>
</goals>
</execution>
</executions>
<configuration>
<storepass>licenseStorePassword</storepass>
<keypass>licenseKeyPassword</keypass>
</configuration>
</plugin>
</plugins>
</build>
五、使用示例
1、生成许可证:
// 设置许可证生成信息
LicenseManager licenseManager= new LicenseManager();
LicenseParam licenseParam = new LicenseParam();
LicenseContent licenseContent = new LicenseContent();
licenseContent.setSubject("product1");
licenseContent.setIssued(new Date());
licenseContent.setNotBefore(new Date());
Calendar c = Calendar.getInstance();
c.setTime(licenseContent.getNotBefore());
c.add(Calendar.DAY_OF_MONTH,30);//设置许可证使用期限为30天
licenseContent.setNotAfter(c.getTime());
licenseContent.setConsumerType("user");
licenseContent.setConsumerAmount(1);
licenseContent.setInfo("This is a license for product1");
licenseContent.setHolder("example");
//生成许可证文件
licenseManager.store(licenseContent, "/path/to/license.lic", licenseParam);
2、验证许可证:
//读取许可证文件并验证
LicenseManager licenseManager= new LicenseManager();
LicenseParam licenseParam = new LicenseParam();
licenseParam.setSubject("product1");
License license=null;
try {
license=licenseManager.verify("/path/to/license.lic", licenseParam);
//许可证验证通过
} catch (Exception e) {
//许可证验证失败
}
六、结语
TrueLicense是一款优秀的Java许可证管理工具,它提供了多种许可证方式以及简单易用、高效、开源等优点。它可以帮助Java开发人员轻松地实现应用程序的许可证管理,保护应用程序的版权和利益。