Java实现License许可证控制(详细过程)

这篇具有很好参考价值的文章主要介绍了Java实现License许可证控制(详细过程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现license控制需要准备:

1.密钥对

2.生成许可证

3.将配置代码配置到给客户部署的项目中

第一步:我们可以通过Jdk(建议jdk1.8)自带的keytool工具生成,在命令行(win+r输入cmd)输入以下命令:

#生成命令

keytool -genkeypair -keysize 1024 -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -keypass "private_password1234" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"

参数说明:

  • keysize 密钥长度
  • validity 私钥的有效期(单位:天)
  • alias 私钥别称
  • keystore 指定私钥库文件的名称 (生成在当前目录)
  • storepass 指定私钥库的密码 (keystore 文件存储密码)
  • keypass 指定别名条目的密码 (私钥加解密密码)
  • dname 证书个人信息
    • CN 为你的姓名
    • OU 为你的组织单位名称
    • O 为你的组织名称
    • L 为你所在的城市名称
    • ST 为你所在的省份名称
    • C 为你的国家名称

这一步可能报错:像下面这种情况(有可能是jdk过高导致的),

Java实现License许可证控制(详细过程)

那就执行这段命令(我指定了仓库类型和密钥就可以了)

keytool -genkeypair -keysize 1024 -storetype jks -keyalg DSA -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -keypass "private_password1234" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"

参数说明:

-storetype 指定仓库类型, JKS、 JCEKS、 PKCS12 等

-keyalg 指定密钥的算法, RSA、 DSA 等,默认DSA

#导出命令

keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -file "certfile.cer"

参数说明:

  • alias 私钥别称
  • keystore 指定私钥库文件的名称 (如果没有带路径,在当前目录查找)
  • storepass 指定私钥库的密码
  • file 导出证书文件名称
#导入命令

keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "public_password1234"

参数说明:

  • alias 公钥别称
  • file 证书文件名称
  • keystore 公钥文件名称
  • storepass 指定私钥库的密码

命令行当前路径可以看到以下三个文件:

  • privateKeys.keystore(私钥)提供给生成证书使用
  • publicCerts. keystore(公钥)提供给证书认证使用
  • certfile.cer后续步骤用不到,可以删除

第二部:生成许可证.

生成许可证的工具地址是:licenseDemoServe: 实现license控制,生成许可证

获取到代码之后配置文件中可以看到

Java实现License许可证控制(详细过程)

这是证书生成路径,如果前端没有指定生成路径就会生成在这个路径里,这个路径不存在生成失败。

控制类提供了两个接口:获取硬件信息和生成许可证。

获取硬件信息接口:localhost:8081/license/getServerInfos?osName=windows

获取windos硬件信息,

参数osName的值可以是windows和linux。

参数osName非必须。

获取结果是这样的:

{
    "ipAddress": [
        "192.168.1.43"
    ],
    "macAddress": [
        "00-E0-4C-A3-02-25"
    ],
    "cpuSerial": "BFEBFBFF000806D1",
    "mainBoardSerial": "Default"
}

 生成许可证的接口是http://localhost:8081/license/generateLicense

参数实例如下:

{
    "subject": "license_demo",
    "privateAlias": "privateKey",
    "keyPass": "private_password1234",
    "storePass": "public_password1234",
    "licensePath": "C:/Users/Administrator/license.lic",
    "privateKeysStorePath": "C:/Users/Administrator/privateKeys.keystore",
    "issuedTime": "2012-07-10 00:00:01",
    "expiryTime": "2022-11-16 18:41:00",
    "consumerType": "User",
    "consumerAmount":1,
    "description": "这是证书描述信息",
    "licenseCheckModel":{
    "ipAddress": [
        "192.168.1.43"
    ],
    "macAddress": [
        "00-E0-4C-A3-02-25"
    ],
    "cpuSerial": "BFEBFBFF000806D5",
    "mainBoardSerial": "Default"
}
}

返回结果如下

{
    "result": "ok",
    "msg": {
        "subject": "license_demo",
        "privateAlias": "privateKey",
        "keyPass": "private_password1234",
        "storePass": "public_password1234",
        "licensePath": "C:/Users/Administrator/license.lic",
        "privateKeysStorePath": "C:/Users/Administrator/privateKeys.keystore",
        "issuedTime": "2012-07-10 00:00:01",
        "expiryTime": "2022-11-16 18:41:00",
        "consumerType": "User",
        "consumerAmount": 1,
        "description": "这是证书描述信息",
        "licenseCheckModel": {
            "ipAddress": [
                "192.168.1.43"
            ],
            "macAddress": [
                "00-E0-4C-A3-02-25"
            ],
            "cpuSerial": "BFEBFBFF000806D5",
            "mainBoardSerial": "Default"
        }
    }
}

然后创立一个客户端测试。测试代码如下

https://gitee.com/lookat-wind/licnse-demo-cilent.git

需要检验证书的模块就在模块中加入下面的类。启动的时候就安装检验证书。

Java实现License许可证控制(详细过程)

Java实现License许可证控制(详细过程)

特别注意:封装硬件信息的model类包名一定要一致。或者你可以合并到一个公共模块。

其他配置信息:

在服务端properties文件中设置生成许可证的路径,参数生成路径为空时就生成在此路径。

Java实现License许可证控制(详细过程)

客户端的properties文件中配置参数信息,包括证书名,公钥别称,公钥密码,证书位置,公钥位置。

 Java实现License许可证控制(详细过程)

完成,项目启动时安装证书,安装失败项目启动失败.文章来源地址https://www.toymoban.com/news/detail-437256.html

到了这里,关于Java实现License许可证控制(详细过程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity超详解如何获取学生版许可证,激活许可证

    首先说明 ,本文是针对学生人士以及已经下载过unity hub的人士,还未下载的可以去官网下载unity hub哟。 在线许可证激活 - Unity 手册学习心强的可以进入这个网站学习一些关于unity hub基础的操作,各种基础内容都在里面哟(包括许可证的激活)。 打开unity hub,会显示没有许可证

    2024年02月02日
    浏览(50)
  • 中南林注册教育邮箱加获取JetBrains个人许可证,续订许可证

    使用 校园网 注册地址:http://email.csuft.edu.cn/ 登录后会进入邮箱网站, 请不要删除此标签页,等会需要接收来自申请JetBrains个人许可证的邮件消息 💬 如果你已经有了账号并 处于登录状态 ,则可跳过该步骤。 🏠 https://account.jetbrains.com/login 💬 你也可以选择不使用 学校邮箱

    2023年04月08日
    浏览(52)
  • 【UG安装完成后,打开出现许可证错误:无法连接至许可证服务器系统。】

    许可证错误提示图,如下: 先检查 环境变量 ,本人安装的是NX 12.0,环境变量如下图所示: 设置 SPLM_LICENSE_SERVER 变量,值为 27800@主机名 ,主机名可以在本机系统上查看 确定有环境变量之后还是出现同样问题; 使用管理员身份打开Lmtools,发现里面不存在许可服务,需要手动

    2024年04月12日
    浏览(152)
  • 浅谈 开源许可证

    最近帮开源社区打杂,有个任务涉及到使用其他开源仓库来开发。留意了一下开源许可证,发现帮忙开发的项目使用的 Apache 2.0 开源许可证,可能使用的其他开源仓库有以下几种开源许可证类型 BSD-License BSD-2-Clause license BSD-3-Clause license MIT license GPL license 突然意识到自己仓库大

    2024年01月17日
    浏览(45)
  • pycharm许可证过期解决方法

    pycharm许可证过期解决方法 点击enter license,选择License server,填入 http://fls.jetbrains-agent.com

    2024年01月22日
    浏览(39)
  • Elasticsearch集群许可证过期问题处理

    当你执行索引相关操作有如下报错: 这就提示你许可证过期需要重新申请。 步骤如下: 1. 登录注册 Register | Elastic https://license.elastic.co/registration  注册成功!邮件会收到下载链接。   2. 点击下载与ES对应的版本 查看ES版本:curl http://172.16.18.140:9200 3. 将下载好的许可证文件上

    2024年02月02日
    浏览(48)
  • Visual Studio社区版许可证过期

    今天(2023/07/13),用vs2017打开项目时,提示许可证过期。点击“检查更新许可证”,提示失败。在网上搜索了很多相关方法,都失败。后来,偶然的在网上搜到一篇说在浏览器设置中,增加信任网址,可以解决这个问题。在这里记录下解决方法,以备有缘人搜索到,解决类似

    2024年02月03日
    浏览(45)
  • TC (Teamcenter) 许可证解决方案

    你是否因为经常遇到下列许可问题而苦恼? 没有可用于 Teamcenter 并发模块 ”catia_integration” 的 Flexlm 许可证;   Teamcenter Visualization Mockup 10.1  无法获取许可证;      尝试的操作需要 “classification_access” 已命名的用户许可证,此功能部件的所有许可证都已指派给其他用户。

    2023年04月19日
    浏览(46)
  • Visual Studio 2019 许可证过期解决办法

    打开Visual Studio 2019程序,会出现如下问题: 点击“检查更新的许可证”,显示 解决办法: 找到VS2019安装目录,找到 Common7/IDE/DDConfigCA.exe 再右键单击“以管理员身份运行”运行即可。 注意到点击DDConfigCA.exe,点击这个文件会立刻闪退,然后重启VS,就可以了!

    2024年02月11日
    浏览(45)
  • Office的许可证不是正版弹框解决

    问题:kms已经激活,但是一直有许可证不是正版的弹框烦扰。 解决方法:需求修改注册表中的键值对,来更换更新频道。 步骤: 1、打开注册表 2、将修改注册表中AudienceId和CDNBaseUrl的键值 ID“55336B82-A18D-4DD6-B5F6-9E5095C314A6”,指的即为“每月企业频道”。 3、删除一些键值对,

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包