• Stars
    star
    371
  • Rank 115,103 (Top 3 %)
  • Language
    Java
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

软件许可证书生成+验证

license

软件许可证书生成+验证

作者:appleyk

博客地址:https://blog.csdn.net/appleyk

本篇博客地址:https://blog.csdn.net/Appleyk/article/details/101530203

license.app

软件许可应用(WebApp,主要用于引入license模块,便于测试)

1、首先要用KeyTool工具来生成密钥库:(-alias别名 –validity 3650表示10年有效) keytool -genkey -alias privatekeys -keysize 1024 -keystore privateKeys.store -validity 3650

2、然后将密钥库中名称为‘privatekeys’的证书条目导出到证书文件certfile.cer中: keytool -export -alias privatekeys -file certfile.cer -keystore privateKeys.store

3、然后再把这个证书文件的信息导入到公钥库中别名为publiccert的证书条目中: keytool -import -alias publiccert -file certfile.cer -keystore publicCerts.store

最后生成的文件privateKeys.store和publicCerts.store拷贝出来备用。

application.properties文件中添加如下配置:

##License相关配置 证书名称

  • springboot.license.verify.subject=landi

公钥别名

  • springboot.license.verify.publicAlias=publiccert

公钥库所在的位置

  • springboot.license.verify.publicKeysStorePath=/publicCerts.store

公钥库访问密码

  • springboot.license.verify.storePass=123456a

证书生成的临时位置(如果参数不指定,则由程序自动进行处理)

  • springboot.license.generate.temp.dir=D:/app/licenses/

证书所在系统中的的位置(默认放在classes下面)

  • springboot.license.verify.licensePath =classpath:license.lic

============License相关配置=============

生成证书的请求参数(json):

{
    "subject": "landi",
    "privateAlias": "privateKeys",
    "keyPass": "123456a",
    "storePass": "123456a",
    "privateKeysStorePath": "/privateKeys.store",
    "issuedTime": "2020-05-01 08:30:00",
    "expiryTime": "2021-05-01 08:30:00",
    "description": "系统软件许可证书",
    "licenseCheck": {
        "ipAddress": [
            "192.168.1.2",
            "2408:8221:1d:bbd0:ad77:446e:4904:a776",
            "2408:8221:1d:bbd0:71b6:d1b0:39c6:3c4e",
            "192.168.145.1",
            "192.168.239.1"
        ],
        "macAddress": [
            "64-FB-81-6F-0E-C2",
            "00-50-56-C0-00-08",
            "00-50-56-C0-00-01"
        ],
        "cpuSerial": "BFEBFBFF000206D7",
        "mainBoardSerial": "MB-201706282017",
        "registerAmount": 1000,
        "macCheck": false,
        "boardCheck": false,
        "cpuCheck": false,
        "ipCheck": false,
        "registerCheck": true
    }
}

============License相关配置=============

license.api

证书接口文档

license.app

证书应用App

:可打包成war(默认war)或jar,进行部署

license.core

证书核心模块

license.creator

证书生成模块

:也包括lic文件下载接口

license.verify

证书验证模块

:内置lic文件变动定时检测功能,如业务系统需要用到,只需要在SpringBoot启动类上,添加@EnableScheduling注解即可

:如需在接口上开启License验证功能,只需要在对应的API方法上添加@VLicense注解即可

效果图

图1

图2

图3

图4

More Repositories

1

Spring-Boot-Neo4j-Movies

SpringBoot集成Neo4j图数据库,利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统。
Java
583
star
2

SpringBoot-DesignMode

Java 23种设计模式Demo案列大全 ☞ SpringBoot框架
Java
96
star
3

spring-boot-neo4j

spring-boot集成neo4j图形数据库,并实现简单的节点创建和查询
Java
39
star
4

spring-boot-dynamicdatasource

动态数据源切换
Java
26
star
5

SpringBoot-ShpTools

spring-boot集成geotools工具包,实现将几何对象写进Shapefile【文件】并读取和显示
Java
24
star
6

seven-sso

1. 本项目模块化鲜明、代码简洁、功能小巧、配置灵活,是一个易于上手进行二次开发和快速构建企业内部统一用户认证中心服务的组件。 2. 本项目对服务端session的缓存提供了多种实现方式,如redis的实现方式就多达4种,可基于灵活的配置适配redis的各种部署方式。 3. 本项目配套文档齐全,包括项目模块图、项目的软件设计、项目的接口文档及相关单点登录的序列图说明等。
Java
19
star
7

Spring-Boot-Neo4jAPI

Spring-Boot集成neo4j,采用JavaAPI驱动包+Bolt连接方式实现节点和关系的创建
Java
16
star
8

spring-boot-atomikos

Spring-Boot多数据源实现分布式事务
Java
16
star
9

Spring-Boot-ShpReader

Spring-Boot-ShpReader
Java
14
star
10

Spring-Boot-HDFS

Java HDFS API ,实现文件的存储和访问
Java
9
star
11

Spring-Boot-Neo4j-Relation

Spring-Boot 集成 Neo4j图形数据库实现关系的构建与查询
Java
9
star
12

SpringBoot-RelationShip

SpringBoot集成neo4j实现关系网创建和查询
Java
9
star
13

Spring-Boot-Protocol-Buffer

Spring-Boot -- Google Protobuff的案列应用
Java
8
star
14

web-sample

SpringBoot2.1.4 + Mybatis数据持久层通用Web后端脚手架(代码样例)
Java
7
star
15

SpringBoot-Consul

SpringBoot集成Consul,实现服务发现与注册功能&分布式配置中心简单案例
Java
6
star
16

SpringBoot_Mybatis

Spring Boot 框架 + Mybatis的通用Mapper+ 实现单表的增删改查+批量操作
Java
6
star
17

handwriting-springmvc

手写SpringMvc(自定义注解、配置DispatcherServlet前置控制器、手写实现Servlet的init方法,利用反射机制+注解(过滤)实例化Bean、创建Bean容器和处理url和method之间的映射关系,并最终实现client端API请求的后端doGet和doPost方法,将结果渲染给前端)
Java
6
star
18

seven-rpc

基于Spring+Netty框架构建的简版RPC个人框架
Java
5
star
19

Spring-Boot-MultiFile-UpLoad

Spring-Boot+异步调用+ehcache缓存+单文件、多文件的上传
Java
5
star
20

appleyk-spring-boot

spring-boot
Java
4
star
21

MultiTask

模拟in查询量比较多时,用线程分批查询,最终进行结果合并,提高查询效率
Java
4
star
22

SpringBoot-Docker

docker部署+执行springboot项目
Java
4
star
23

springboot-myabtis-injection-sample

SpringBoot结合myabtis,实现一个简单的sql注入攻击
Java
4
star
24

Spring-Boot-MongoDB

Spring-Boot 集成mongodb,实现简单的对象存储和查询
Java
4
star
25

Vue-Projects

JavaScript
3
star
26

seata-spring-boot-demos

使用seata分布式事务框架,结合SpringBoot,解决微服务之间业务互相调用时全局事务一致性的问题
3
star
27

Spring-Boot-Clone

Java 实现对象的浅拷贝和深拷贝
Java
3
star
28

tk-mybatis-dynamic-tablename

tk.mybatis动态创建表操作
Java
3
star
29

file-changing

SpringBoot定时器+文件md5指纹码实现文件变动的实时监测
Java
2
star
30

springboot-myabatis-plus-sample

SpringBoot集成MybatisPlus实现单表增删改查的例子
Java
2
star
31

effctive-java-demo

高效Java学习代码
Java
2
star
32

SpringBoot-Activiti-Sample

SpringBoot集成开源业务流程框架Activiti,使用案例
Java
2
star
33

springboot-distribute-lock-sample

分布式锁应用案例(三种)
Java
2
star
34

springboot-redis-bloomfilter

SpringBoot框架,利用Guava工具包中自带的布隆过滤器的实现类,解决高并发下海量数据查询可能造成的Redis缓存穿透的问题。
Java
2
star
35

ts-design-pattern

typescript版本的设计模式
2
star
36

Hello-Word

first git project
1
star
37

umi-project

记录利用umi脚手架,搭建简单前端站点的过程
JavaScript
1
star
38

dubbo-spring-boot-sample

dubbo整合springboot框架,简单使用
Java
1
star
39

Spring-Boot-MyBatis-PageHelper

Spring-Boot
Java
1
star
40

react-native-example

基于React Native移动端框架的学习Demo案例,涉及Image、FlatList、SectionList、Swiper等组件的应用...etc
1
star
41

react-demo

搭建react脚手架,并结合官网的井字游戏教程,初始react
JavaScript
1
star
42

First-Servlet

创建一个Servlet,实现随机图片的绘制,并将结果通过response输出出去
Java
1
star
43

java-essay

Java随笔,主要利用闲暇时间,看看博客,写写代码,学习学习基础知识,有趣和高深的demo也会记录!
1
star
44

java-design-pattern-redux

用Java结合设计模式(装饰器+责任链+观察者模式)实现简版的Redux功能
Java
1
star