授权证书

JDK: 1.8JDKJDK1.81.8
Spring Boot: 2.4.5.RELEASESpring BootSpring Boot2.4.5.RELEASE2.4.5.RELEASE

文章目录

  • 授权证书
    • 1. 介绍
    • 2. 项目结构
    • 3. 使用方法
    • 4. 示例
    • 5. 源码地址


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
/*** springboot在初始化这个类时就已经装载到了证书的监听管理*/
@Component
public class UserNumVerifyListener extends ACustomVerifyListener {/***  userNum 个性化校验*/private Integer userNum=0;/***  ParamType 在生成证书和获取申请码以及展示上有重要作用*/private static final ParamType paramType = new ParamType("userNum", "用户数量", java.lang.Integer.class);/***  证书在安装时候回调的方法,LicenseExtraParam 中包含很多额外的参数,*  用户自定义参数一般在 params 中,key是 ParamType 中的 key*/@Overridepublic boolean install(LicenseExtraParam licenseExtra) {userNum = Integer.parseInt(licenseExtra.getParams().get(paramType.getKey()).toString());return false;}/***  证书在卸载时候回调的方法,将参数归零*/@Overridepublic void uninstall() {userNum = 0;}/***  生成证书申请码时候会被调用*/@Overridepublic ParamType paramType() {return UserNumVerifyListener.paramType;}/***  自定义验证方法,返回是否校验通过*/public boolean verify(Integer userNum){return userNum < this.userNum;}
}
  • 在需要校验的地方引入这个类并调用校验方法
  • 可以使用 @VLicense 在关键入口做校验,验证证书是否过期
  • 校验使用可以参考TestController
  • creator配置文件(可以不写,内置有密钥对)
license:generate:filename: license.licsubject: csptprivateAlias: privateKeykeyPass: wsn++123storePass: wsn++123privateKeysStorePath: /privateKeys.store
  • verify配置文件
license:verify:subject: csptpublicAlias: publiccertpublicKeysStorePath: /publicCerts.storestorePass: wsn++123licensePath: license.lic

4. 示例

提供两个可运行的项目示例

  1. license-creator-webapp

    生成证书webapp,可以直接拿来用

  2. license-verify-demo

    校验证书示例app

5. 源码地址

源码地址gitee

java开发授权证书相关推荐

  1. Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了,赶紧收藏起来

    OpenSSL和keytool 先说一下两个重要的工具 OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl.应用程序命令工具以及密码算法库libcrypt ...

  2. 平均年薪60.8万!拿下这个证书,Java开发直接起飞!

    今年上半年,一道"双减政策"犹如万钧雷霆,生生把K12教育公司估值打的灰飞烟灭,在线教育的寒冬已然来临,就连字节跳动旗下的大力教育也不得不大力裁员: 图片来源:网络 "时 ...

  3. Java开发工具IntelliJ IDEA 2020.2完整授权流程

    2023 Java开发工具IntelliJ IDEA最新工具 最近几年,Java 的技术栈发展的非常快,Java作为一门十分流行的面向对象编程语言,其开发工具也是非常多的,当然因为接触时间长短以及个人 ...

  4. 2020春招 / 2021秋招阿里、腾讯、字节、快手、美团 JAVA 开发岗面试高频问题总结

    2020春招 / 2021秋招阿里.腾讯.字节.快手.美团 JAVA 开发岗面试高频问题总结 2.1 进程和线程的区别? 2.2 进程的调度算法有哪些?(主要) 2.3 常用 IO 模型? 2.4 s ...

  5. 适用于Java开发人员的微服务:管理安全性和机密

    关于麦洛 麦洛是 Java 开发者和技术爱好者. 对 Java 相关技术特别感兴趣,包括 javaee. Spring系列. 微服务等 作者:Andrey Redko 原文:Microservices ...

  6. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  7. 设置作者_阿里Java开发手册建议创建HashMap时设置初始化容量,但多少合适

    集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 关于HashMap,很多人都对他有一些基本的了解,比如他和hashtab ...

  8. Hyperledger Fabric 超级账本 Java 开发区块链环境构建

    面向 Java 开发人员的链代码简介 您听说过区块链超级账本Hyperledger Fabric?对Java开发人员有何用.我将分步展示用 Hyperledger Fabric v0.6来搭建开发环境 ...

  9. Java开发手册——嵩山版(清幽现云山,虚静出内功)

    终于找到了--阿里巴巴Java开发手册1.7.0(嵩山版) 前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业 ...

最新文章

  1. 关于幂等性的解决方案
  2. 分析和解密已加密的路由器固件
  3. hdu oj1093题解
  4. [1204 寻找子串位置] 解题报告
  5. 用twisted为未来安排任务(Scheduling tasks for the future
  6. 密码学原理与实践_到底什么是防火墙入侵检测密码学身份认证?如何高效建立网络安全知识体系?...
  7. Swift语言精要 - Dictionary(字典)
  8. mysql字符集导出_关于mysql字符集及导入导出
  9. SVN客户端下载和Svn visual studio插件
  10. 【seaborn】(五)联合分布图
  11. Python网络之数据库
  12. 电影里的机械手臂,和现实究竟有多大区别?
  13. k8s源码分析 pdf_《k8s-1.13版本源码分析》上github
  14. 计算机社团活动效果取得成绩,电脑社团工作总结
  15. java下载网络文件至本地
  16. 3、哈哈哈-(2)hahaha1.py
  17. 购物表单mysql还是mongodb_日志数据是选择mysql 还是 mongodb 还是 postgredb
  18. HTML5CSS3笔记:响应式设计中的 HTML5
  19. 目前超级计算机国内外发展状况,浅谈超级计算机发展的过程及研究现状
  20. 观看M-studio的unity中文教程(开发一款移动设备运行的2D游戏)学习记录

热门文章

  1. java xml用word打开乱码_为什么word文档打开是乱码
  2. Canal+Camus快速采集MySQL Binlog到数据仓库
  3. 通信基站c语言,中兴C网IP基站BBU开通操作全图解
  4. 阵列卡u盘安装系统步骤_如何为U盘装系统添加RAID卡的驱动
  5. html界面原型,进行 Web 界面原型设计的一种方法 - JunChen Wu
  6. 【原创】表单提交之文本输入框(二)
  7. C#的gei和set的写法
  8. ios 获取电量百分比_怎么设置苹果11电池百分比(4 种方法,教你在 iPhone 11 上查看剩余电量百分比)...
  9. C#/.NET 电子口岸IC卡/UKEY用WebSocket方式进行读卡/数据加签
  10. HDU6599多校第二场 Longest Subarray -- 线段树