Spring?Boot項目中使用?TrueLicense?生成和驗證License的詳細步驟
1、Linux
在客戶linux上新建layman目錄,導入license.sh文件,
[root@localhost layman]# mkdir -p /layman
license.sh文件內(nèi)容:
#!/bin/bash # 1.獲取要監(jiān)控的本地服務器IP地址 IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'` echo "IP地址:"$IP # # 2.獲取默認網(wǎng)卡Mac地址 mac_address=`cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address` echo "默認網(wǎng)卡Mac地址:"$mac_address # # 3.獲取CPU序列號 CPU_serial_number=`dmidecode -t 4 | grep ID |sort -u |awk -F': ' '{print $2}'` echo "CPU序列號:"$CPU_serial_number # # 4.獲取主板序列號 Motherboard_serial_number=`sudo dmidecode -s system-serial-number` echo "主板序列號:"$Motherboard_serial_number
執(zhí)行sh文件,會在該目錄下生成license.log
[root@localhost layman]# sh license.sh 2>&1 | tee license.log
2、Windows
創(chuàng)建獲取IP,mac,CPU,主板信息.bat文件,雙擊運行,會在D盤生成ComputerInfos.txt文件。
.bat文件內(nèi)容如下:
@echo off echo 開始獲取本機IP、MAC、CPU序列號、主板序列號信息,請稍等...... if exist D:\ComputerInfos.txt ( echo ===================本機已刪除舊的信息文件,請重新運行獲取!!!================== del D:\ComputerInfos.txt ) else ( rem 查看本機IP信息 echo 1-本機IP信息----------------------------------------------------------------------------:>>D:\ComputerInfos.txt ipconfig>>D:\ComputerInfos.txt rem 查看本機mac信息 echo 2-本機mac信息---------------------------------------------------------------------------:>>D:\ComputerInfos.txt getmac>>D:\ComputerInfos.txt rem 查看本機CPU信息 echo 3-本機CPU序列號-----------------------------------------------------------------------:>>D:\ComputerInfos.txt wmic cpu get processorid>>D:\ComputerInfos.txt rem 4-查看本機主板信息 echo 4-主板序列號----------------------------------------------------------------------------:>>D:\ComputerInfos.txt wmic baseboard get SerialNumber>>D:\ComputerInfos.txt echo "===================本機信息保存在 D:\ComputerInfos.txt================ " ) pause
步驟
1、使用JDK自帶的 keytool 工具生成公私鑰證書庫:
在C:\盤中新建layman目錄,在 C:\layman 中cmd執(zhí)行如下命令:
假如我們設置公鑰庫密碼為:public_password1234,私鑰庫密碼為:private_password1234,則生成命令如下:
#生成命令 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" #導出命令 keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -file "certfile.cer" #導入命令 keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "public_password1234"
上述命令執(zhí)行完成之后,會在當前路徑下生成三個文件,分別是:privateKeys.keystore、publicCerts.keystore、certfile.cer。其中文件certfile.cer不再需要可以刪除,文件privateKeys.keystore用于當前的 ServerDemo 項目給客戶生成license文件,而文件publicCerts.keystore則隨應用代碼部署到客戶服務器,用戶解密license文件并校驗其許可信息。
2、為客戶生成license文件:
將LicenseDemo代碼拉取到本地(聯(lián)系作者獲取源碼),部署項目LicenseDemo,啟動ServerDemo服務。
使用postman工具:
1、get請求獲取客戶機的ip、mac、cpu序列號、主板串行號等信息
get http://127.0.0.1:7000/license/getServerInfos Content-Type application/json;charset=UTF-8
2、post請求生成license.lic文件
post http://127.0.0.1:7000/license/generateLicense 請求時需要在Header中添加一個 Content-Type ,其值為:application/json;charset=UTF-8。參數(shù)示例如下: Content-Type application/json;charset=UTF-8 { "subject": "layman_license", "privateAlias": "privateKey", "keyPass": "private_password1234", "storePass": "public_password1234", "licensePath": "C:/layman/license.lic", "privateKeysStorePath": "C:/layman/privateKeys.keystore", "issuedTime": "2023-04-18 00:00:00", "expiryTime": "2023-04-24 10:20:00", "consumerType": "User", "consumerAmount": 1, "description": "這是證書描述信息", "licenseCheckModel": { "ipAddress": [ "192.168.3.57","192.168.101.1"], "macAddress": ["00-50-56-C0-00-08", "E0-E1-A9-9D-35-C8"], "cpuSerial": "BFEBFBFF000906EA", "mainBoardSerial": "/5H6MJ23/CNWS2009BK01DR/" } }
如果請求成功,那么最后會在 licensePath 參數(shù)設置的路徑生成一個 license.lic 的文件,這個文件就是給客戶部署代碼的服務器許可文件。
3、校驗license:
ClientDemo服務中l(wèi)icense-config.properties參數(shù)配置如下:
#License相關(guān)配置 license.subject=layman_license #主體 - 注意主體要與生成證書的主體一致一致,不然驗證通過不了 license.publicAlias=publicCert #公鑰別稱 license.storePass=public_password1234 #訪問公鑰的密碼 license.licensePathWin=C:/layman/license.lic #license位置 license.publicKeysStorePathWin=C:/layman/publicCerts.keystore #公鑰位置 license.licensePathLinux=/layman/license.lic license.publicKeysStorePathLinux=/layman/publicCerts.keystore
啟動ClientDemo服務,訪問 http://127.0.0.1:7080/login。
如果證書失效,這會出現(xiàn)以下報錯。
到此這篇關(guān)于Spring Boot項目中使用 TrueLicense 生成和驗證License的文章就介紹到這了,更多相關(guān)Spring Boot使用 TrueLicense 生成和驗證License內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)二維碼QRCode的編碼和解碼與示例解析
本文主要介紹Java實現(xiàn)二維碼QRCode的編碼和解碼,這里給大家一個小示例以便理解,有需要的小伙伴可以參考下2016-08-08Java中ExecutorService和ThreadPoolExecutor運行原理
本文主要介紹了Java中ExecutorService和ThreadPoolExecutor運行原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08SpringCloud超詳細講解微服務網(wǎng)關(guān)Zuul
這篇文章主要介紹了SpringCloud Zuul微服務網(wǎng)關(guān),負載均衡,熔斷和限流,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07IntelliJ IDEA配置Tomcat(完整版圖文教程)
這篇文章主要介紹了IntelliJ IDEA配置Tomcat(完整版圖文教程),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05簡單了解java中靜態(tài)初始化塊的執(zhí)行順序
這篇文章主要介紹了簡單了解java中靜態(tài)初始化塊的執(zhí)行順序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10Spring Boot 中常用的注解@RequestParam及基本用法
@RequestParam 是 Spring Framework 和 Spring Boot 中常用的注解之一,用于從請求中獲取參數(shù)值,本文給大家介紹Spring Boot 中常用的注解@RequestParam,感興趣的朋友一起看看吧2023-10-10