# license **Repository Path**: nickforthink/license ## Basic Information - **Project Name**: license - **Description**: 开发的系统需要设置授权才能使用,需要支持一些个性化参数,例如用户注册数量、在线用户数量等,本项目使用TrueLicense生成授权证书。 我不喜欢麻烦,尽量做到开箱即用,内置了密钥对,也可以使用keytool生产自己的密钥对,填写一下配置文件就好。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2022-07-21 - **Last Updated**: 2022-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 授权证书 [![Java](https://img.shields.io/badge/JDK-1.8-green.svg)]() [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.4.5.RELEASE-brightgreen.svg)](https://spring.io/projects/spring-boot) [![auth](https://img.shields.io/badge/作者-张德芳-success.svg??style=for-the-badge&logo=superuser)]() [TOC] [![](https://img-blog.csdnimg.cn/fc2d71ae5f424a698ded07d8539dc5c5.png)]() [![](https://img-blog.csdnimg.cn/74b4beddea214c6fb716de40dcbbe68d.png)]() ## 1. 介绍 开发的系统需要设置授权才能使用,需要支持一些个性化参数,例如用户注册数量、在线用户数量等,本项目使用TrueLicense生成授权证书。 我不喜欢麻烦,尽量做到开箱即用,内置了密钥对,也可以使用keytool生产自己的密钥对,填写一下配置文件就好。 ## 2. 项目结构 license-core 证书相关操作核心代码 license-creator-spring-boot-starter 生成证书 license-creator-webapp 生成证书的一个webapp license-verify-spring-boot-starter 证书校验模块 license-verify-demo 证书校验示例 ## 3. 使用方法 * 新建项目引入`license-verify-spring-boot-starter`模块 * 创建个性化参数校验,新建一个类继承`ACustomVerifyListener` ```java /** * 当类注入到springboot中时候,初始化时自动将实例保存在了父类, * 每次启动校验父类都会调用 verify(LicenseExtraParam licenseExtra) */ @Component public class UserNumVerifyListener extends ACustomVerifyListener { /** ParamType 在生成证书与回显证书信息时候非常有用 */ @Override public ParamType paramType() { return new ParamType("userNum", "用户数量", Integer.class); } /** 校验用户数量是否超出证书限制 custom 为证书中的自定义参数 */ @Override protected boolean verify(Integer custom, Integer test){ return test <= custom; } /** 类型转换 */ @Override protected Integer typeConversion(Object custom) { return Integer.valueOf(custom.toString()); } } ``` * 在需要校验的地方引入这个类并调用校验方法 * 可以使用 `@VLicense` 在关键入口做校验,验证证书是否过期 * 校验使用可以参考`TestController` * creator配置文件(可以不写,内置有密钥对) ```yaml license: generate: filename: license.lic subject: cspt privateAlias: privateKey keyPass: wsn++123 storePass: wsn++123 privateKeysStorePath: /privateKeys.store ``` * verify配置文件(可以不写,内置有密钥对) ```yaml license: verify: handler: enabled: true url: /license #http接口地址,需要在在自己的项目中取消这个路径的权限校验 subject: cspt publicAlias: publiccert publicKeysStorePath: /publicCerts.store storePass: wsn++123 licensePath: license.lic ``` ## 4. 示例 提供两个可运行的项目示例 1. license-creator-webapp > 生成证书webapp,可以直接拿来用 2. license-verify-demo > 校验证书示例app ## 5. 更新日志 ### 5.1 2022-6-28 * 增加路由设置,调用者不再需要手动写 controller,只需要在配置文件中开启 `license.verify.handler.enabled = true` 填写 `license.verify.handler.url = /license` * 生成证书APP增加校验按钮,生成证书时候可以手动选择开启某个关键信息校验,有IP校验、MAC校验、CPU序列号校验、主板序列号校验