SpringBoot集成Truelicense项目许可证

1 Truelicense是什么

TrueLicense是一个开源的证书管理引擎,可以用于license的生成和有效性的验证。

使用场景:当项目交付给客户之后用签名来保证客户不能随意使用项目,默认校验了开始结束时间,可扩展增加mac地址校验等。

2 准备工作

1下载springboot-license.zip包

地址:https://download.csdn.net/download/qq_34281865/86747260

说明:keystore私匙库的有效期到2122年

2 初始化目录

系统环境新建目录
WindowsD:/home/license
Linux/home/license

将springboot-license.zip解压到新建目录下面。

3 生成license文件

1 启动license-generate-project-1.0.0.jar

进入jar目录,执行java -jar license-generate-project-1.0.0.jar

2 调用生成证书接口

输入参数:证书有效期(单位:天)、物理地址(MAC)、证书项目名称

输出结果:license.zip(将该压缩包解压到初始化目录下面)

4 实现license验证

以下操作均以Windows环境为例,Linux环境也类似。(修改spring.profiles.active值即可)

1 修改配置文件

2 增加Maven依赖

3 增加license相关类

4 物理地址(MAC)验证

测试前置条件:

生产者物理地址(MAC)
调用生成证书接口3C-16-DB-A7-4F-CA
本地电脑2C-16-DB-A7-4F-CA

测试步骤:

进入jar目录,执行java -jar license-demo-project-1.0.0.jar

测试结果:

5 证书有效期启动验证(超过有效期)

测试前置条件:

生产者时间
证书有效期2022-10-11 13:30:13至2022-10-21 23:59:59
本地电脑2022-11-11 13:30:13

测试步骤:

进入jar目录,执行java -jar license-demo-project-1.0.0.jar

测试结果:

启动失败,如下图:

6 证书有效期启动验证(符合有效期)

测试前置条件:

生产者时间
证书有效期2022-10-11 13:30:13至2022-10-21 23:59:59
本地电脑2022-10-11 13:30:18

测试步骤:

进入jar目录,执行java -jar license-demo-project-1.0.0.jar

测试结果:

启动成功,如下图:

7 证书有效期访问验证(超过有效期)

测试前置条件:

生产者时间
证书有效期2022-10-11 13:30:13至2022-10-21 23:59:59
本地电脑2022-11-11 13:30:13

测试步骤:

  1. 在符合证书有效期的条件下,成功启动license-demo-project-1.0.0.jar

  2. 修改本地电脑时间为2022-11-11 13:30:13,然后访问接口(获取请求IP)

测试结果:

访问失败,如下图:

8 防止手动修改本机时间,影响证书有效期的限制

5 源码位置

个人交流Q:772182648
以上是本人自己总结,并且在项目中实际用到的。新手一枚,不喜勿喷!

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
您好!感谢您的问题。关于Spring BootTrueLicense的整合,以下是一些基本的步骤: 1. 首先,确保您的项目中已经引入了Spring Boot的依赖。您可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> ``` 2. 接下来,您需要在您的项目中引入TrueLicense的依赖。您可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>net.truelicense</groupId> <artifactId>truelicense-core</artifactId> <version>3.3.2</version> </dependency> ``` 3. 在您的Spring Boot应用程序中,您需要配置TrueLicense的相关参数。您可以创建一个配置类,并使用@Configuration注解进行标记。在该类中,您可以使用@Bean注解创建一个LicenseManager实例,配置TrueLicense的相关属性,例如许可证文件的位置、公钥和私钥等。例如: ```java @Configuration public class TrueLicenseConfig { @Value("${license.publicKeyPath}") private String publicKeyPath; @Value("${license.subject}") private String subject; @Value("${license.licensePath}") private String licensePath; @Value("${license.storePwd}") private String storePwd; @Value("${license.keyPwd}") private String keyPwd; @Bean public LicenseManager licenseManager() { LicenseParam licenseParam = new DefaultLicenseParam(subject, new File(licensePath), publicKeyPath, storePwd, keyPwd); return LicenseManagerHolder.getLicenseManager(licenseParam); } } ``` 4. 在您的应用程序中,您可以使用@Autowired注解将LicenseManager注入到需要验证许可证的地方。例如,您可以在某个服务类中进行许可证验证: ```java @Service public class MyService { @Autowired private LicenseManager licenseManager; public void doSomething() { if (licenseManager.verify()) { // 许可证验证通过,执行相应的逻辑 } else { // 许可证验证失败,执行相应的逻辑 } } } ``` 请注意,这只是一个简单的示例,实际上可能需要根据您的具体需求进行更详细的配置和集成。 希望这些信息对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊GG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值