https://github.com/exp-codes/software-certificate
软件授权插件
https://github.com/exp-codes/software-certificate
certificate programming
Last synced: 6 months ago
JSON representation
软件授权插件
- Host: GitHub
- URL: https://github.com/exp-codes/software-certificate
- Owner: EXP-Codes
- Created: 2018-01-09T08:56:10.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-16T18:08:23.000Z (almost 3 years ago)
- Last Synced: 2024-05-01T13:12:12.802Z (over 1 year ago)
- Topics: certificate, programming
- Language: Java
- Homepage: https://exp-codes.github.io/software-certificate/
- Size: 479 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# software-certificate
> 软件授权清单 : [[ Management-Page ]](https://lyy289065406.github.io/software-certificate/)
------
## 运行环境

 
## 插件介绍
此插件是供开发者使用的,通过它可以利用 Github 服务器发布若干个应用的授权信息。
然后这些应用可以通过 Github 服务器提取自身的授权信息完成自检。
目前**提供的自检方案**主要有:
- 有效版本校验
- 有效时间校验
- 黑名单校验
- 白名单校验
## 实现原理

在 Github 的每个 Repository 都是可以发布一个静态页面的,而且这个静态页面可以在公网访问。
这个静态页面初衷是用来介绍 Repository 的,但是也可以利用它作为一个静态服务页,实现其他功能。
> **为某个 Repository 发布静态页面的方法:**
(1) 打开这个 Repository 的仓库首页
(2) 进入 `Settings` 页面
(3) 找到 `GitHub Pages`,在 `Source`下面有一个下拉框, 默认是 `None`, 修改为 `master branch`
(4) 然后刷新 `Settings` 页面,在 `GitHub Pages` 的位置会提示:Your site is published at `xxx-url`
(5) 在Repository根目录新建一个 `index.html` 文件,写入页面内容,就可以通过这个 `xxx-url` 访问它了
回到这个插件,其实原理就很简单了,要实现的功能主要有两个:
- (在开发环境)通过更新 `index.html`,在 `xxx-url` 静态页面维护被授权应用的信息
- (在生产环境)应用从 `xxx-url` 静态页面提取自身的授权信息进行自检
## 使用方式
由于插件存在两部分功能,因此使用方式也是对应拆分为两部分。
**(开发环境)在 `xxx-url` 静态页面维护被授权应用的信息:**
1. 通过 git 命令 clone 这个插件仓库到本地
2. 修改 `./conf/ec_conf.xml` 配置文件,在节点 `` 下配置被授权的应用信息,格式为:
```xml
xxx
xxx
xxx
xxx
```
3. 运行 `exp.certificate.Main` 类,会自动根据 `./conf/ec_conf.xml` 配置文件的内容刷新 `./index.html` 文件
4. 通过 git 提交变更,即成功把被授权应用的信息提交到了 Github服务器
5. 此时刷新静态页面地址 `xxx-url`,会发现页面内容已变更(**为了保证信息安全,所生成的授权信息均已加密处理**),如:

**(生产环境)应用从 `xxx-url` 静态页面提取自身的授权信息进行自检:**
1. 通过 `maven install` 命令发布本插件作为 jar 构件,目标应用通过 pom.xml 依赖此构件:
```xml
com.exp-blog
software-certificate
${LATEST_VERSION}
```
2. 构件内提供了 API:`exp.certificate.api.Certificate.getAppInfo()` ,可据此从 `xxx-url` 获取自身的授权信息
3. 获取到的授权信息会以明文方式保存到 `exp.certificate.bean.AppInfo`, 按需使用即可