当前位置: 首页 > news >正文

Spring Boot License 认证系统

Spring Boot License 认证系统

本项目适用于对软件进行授权保护。项目分为三个主要模块:

  • licence-core:核心逻辑模块,包含 License 生成与校验的公共类。
  • licence-server:服务端模块,提供生成 License 的 Web 接口。
  • licence-client:客户端模块,提供验证 License 的功能。

项目结构

.
├── licence-client # 客户端模块
│ ├── config # 拦截器配置
│ ├── entity # 验证参数
│ ├── service # 服务接口
│ └── util # 许可证校验工具类
├── licence-core # 核心模块
│ ├── entity # 证书参数实体
│ └── serverinfo # 服务器信息采集(Windows/Linux)
├── licence-server # 服务端模块
│ ├── controller # 证书生成接口
│ ├── util # 证书生成工具类
│ └── static # 前端页面(cs.html)
└── README.md # 项目文档

项目操作流程

生成密钥对

生成密钥
  • 通过KeyStoreGenerator类中generateKeyStore方法生成私钥库文件保存到指定文件中。可通过接口生成密钥对。
  • 生成证书接口参数
{//证书主题"subject": "lcz_demo",//证书到期时间"expireTime": "2025-12-31 23:59:59",//证书签发时间"issuedTime": "2025-01-01 00:00:00",//证书描述"description": "授权给[lcz_demo]的证书,时长1年",//密钥库访问密码"storePass": "lcz1234",//私钥别称"privateAlias": "privateKeyLcz",//私钥访问密码"keyPass": "lcz1234",//保存证书的文件路径"licensePath": "/Users/lcz/Downloads/license.lic",//密钥库文件保存路径"privateKeysStorePath": "/Users/lcz/Downloads/privateKeys.keystore",//服务器信息,填写为空则表示无限制"additionInfo": {//ip地址范围,为空则表示无限制"ipAddress": ["192.168.2.x"],//mac地址,为空则表示无限制"macAddress": ["80-00-0B-67-5E-BC"],//cpu序列号,为空则表示无限制"cpuSerial": "xxxBFBFF000306C3",//主板序列号,为空则表示无限制"mainBoardSerial": "/7xxxH72/CN129xxx1G0009/"},//允许的授权数,为空则表示无限制"consumerAmount": 1,//授权类型,可选值:user,host,process,默认为user"consumerType": "user",//公钥库文件保存路径"publicKeysStorePath": "/Users/lcz/Downloads/publicCerts.keystore",//公钥别称"publicAlias": "publicCert"
}
  • 通过页面生成密钥对 生成密钥对
从私钥库导出证书
  • 通过KeyStoreGenerator类中exportCertificate方法生成,用来生成公钥文件。
通过证书到公钥库
  • 通过KeyStoreGenerator类中importPublicCertificate方法生成公钥文件

上述命令执行完成后会在当前目录生成三个文件:

  • certfile.cer 认证证书文件,暂时无用
  • privateKeys.keystore 私钥文件,自己保存
  • publicKeys.keystore 公钥文件,需要放到客户端项目目录里

licence-server生成证书

licence-server接口文档

licence-client安装、校验证书

添加依赖
  • maven install
  • 通过打包生成jar包,把targetlicence-clientjar包引入到客户端需要配置软件授权保护项目中下
mvn install:install-file -DgroupId=com.lcz -DartifactId=licence-client -Dversion=1.0 -Dpackaging=jar -Dfile=licence-client-1.0.jar
  • 用户可通过实现VerificationExpirationProcessingService.java接口实现证书到期之后的处理逻辑
添加配置信息到软件授权保护项目中
  • 添加配置信息到文件application.yml
#证书配置
license:#证书subjectsubject: lcz_demo#公钥别称publicAlias: publicCert#访问公钥的密码storePass: public_password1234#证书路径licensePath: C://Users/User/Desktop/tmp/license.lic#公钥存储路径publicKeysStorePath: C://Users/User/Desktop/tmp/publicCerts.keystore
添加证书相关文件到软件授权保护项目中
  • 通过设置的证书路径和公钥存储路径把认证证书文件(license.lic)、公钥文件(publicCerts.keystore)文件复制到软件授权保护项目下

项目地址

http://www.xdnf.cn/news/1182781.html

相关文章:

  • c# openxml 打开加密 的word读取内容
  • SQL性能优化
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的私域流量池用户运营研究
  • 如何实现缓存音频功能(App端详解)
  • vscode 字体的跟换
  • OpenCV 图像变换全解析:从镜像翻转到仿射变换的实践指南
  • VSCode——python选择解释器消失的解决办法
  • 【通识】算法案例
  • 安卓上的迷之K_1171477665
  • 顺应AI浪潮,电科金仓数据库再创辉煌
  • 2025真实面试试题分析-安卓客户端开发
  • 去除视频字幕 2, 使用 PaddleOCR 选取图片中的字幕区域, 根据像素大小 + 形状轮廓
  • AI浪潮涌,数据库“融合智能”奏响产业新乐章
  • I/O多路复用机制中触发机制详细解析
  • 【数据结构】长幼有序:树、二叉树、堆与TOP-K问题的层次解析(含源码)
  • 【SpringAI实战】实现仿DeepSeek页面对话机器人(支持多模态上传)
  • 【深度学习优化算法】09:Adadelta算法
  • JavaScript -Socket5代理使用
  • 攻防世界-Crypto-Morse
  • react+threejs实现自适应分屏查看/3D场景对比功能/双场景对比查看器
  • C 语言 | 结构体详解:自定义数据类型的艺术
  • 筑牢网站运营根基:售后工作的核心维度与实践方法
  • 篇五 网络通信硬件之PHY,MAC, RJ45
  • 车身域控制器MCU市场报告:解析行业现状与未来趋势
  • 【机器学习之推荐算法】基于矩阵分解和损失函数梯度下降的协同过滤算法实现
  • 解决angular与jetty websocket 每30s自动断连的问题
  • AR眼镜重塑外科手术导航:精准“透视”新突破
  • 从零开始的云计算生活——番外6,使用zabbix对中间件监控
  • 医疗数据挖掘Python机器学习案例
  • 告别静态文档!Oracle交互式技术架构图让数据库学习“活“起来