ホームページ >Java >&#&チュートリアル >SpringBoot がライセンスを生成する方法を理解する方法
ライセンスとは、著作権ライセンスのことです。システムを開発した後、ユーザーに常に無料で使用してほしくない場合、たとえば時間に基づいて更新する場合、ライセンスは、便利である。
システムのライセンスの有効期間を指定し、システムの利用可能時間を制御できます。
では、SpringBoot プロジェクトの場合、ライセンスを増やすにはどうすればよいでしょうか?次に、王子は一連の解決策を持ってきます。 (もちろん、実装方法は複数あります)
このツールはパッケージ化されており、友人はそれを直接ダウンロードして使用できます: https://gitee.com/ lm970585581/spring-boot2-license
ダウンロード後、cloud-license-serve プロジェクトを開いて直接開始します。
次に、プロジェクトの情報取得インターフェイスを呼び出します: http://localhost:9081/license/getServerInfos?osName=windows
IP アドレス、MAC アドレスを表す次のような結果が得られます。 、および cpu それぞれ、シリアル番号、マザーボードのシリアル番号。
{ "ipAddress": [ "192.168.80.1", "192.168.220.1" ], "macAddress": [ "01-51-56-C0-00-01", "00-52-56-C0-00-08", "BC-54-2D-DF-69-FC" ], "cpuSerial": "BFECFBFF000806EC", "mainBoardSerial": "L1HF16301D5" }
JDK に付属の keytool ツールを使用して、公開キーと秘密キーの証明書ストアを生成します。
公開キー ストアのパスワードを 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"
上記のコマンドを実行すると、現在のパスに 3 つのファイル (privateKeys.keystore、publicCerts.keystore、および certfile.cer) が生成されます。ファイル certfile.cer は不要になったので削除できます。ファイル privateKeys.keystore は現在の ServerDemo プロジェクトで顧客向けのライセンス ファイルを生成するために使用され、ファイル publicCerts.keystore はアプリケーション コードとともに顧客サーバーにデプロイされます。ユーザーはライセンス ファイルを復号化し、そのライセンス情報を確認します。
最後に、ライセンスを生成します。呼び出し側インターフェイスのアドレスは次のとおりです: http://localhost:9081/license/generateLicense
呼び出し側パラメーターは、次の形式の json パラメーターです。 ##
{ "subject": "license_demo", "privateAlias": "privateKey", "keyPass": "private_password1234", "storePass": "public_password1234", "licensePath": "C:/Users/zifangsky/Desktop/license_demo/license.lic", "privateKeysStorePath": "C:/Users/zifangsky/Desktop/license_demo/privateKeys.keystore", "issuedTime": "2018-07-10 00:00:01", "expiryTime": "2019-12-31 23:59:59", "consumerType": "User", "consumerAmount": 1, "description": "这是证书描述信息", "licenseCheckModel": { "ipAddress": ["192.168.245.1", "10.0.5.22"], "macAddress": ["00-50-56-C0-00-01", "50-7B-9D-F9-18-41"], "cpuSerial": "BFEBFBFF000406E3", "mainBoardSerial": "L1HF65E00X9" } }リクエストが成功すると、licensePath パラメータで設定されたパスに、license.lic ファイルが生成されます。このファイルは、顧客にコードを展開するためのサーバー ライセンス ファイルです。 ライセンスの使用上記の手順を段階的に実行すると、license.lic を取得したことになります。次のステップは、そのライセンスを独自のプロジェクトで使用することです。 cloud-license-client はインポートされたプロジェクトの例であり、これを開いて直接使用できます。 独自のプロジェクトを導入するには、次のファイルを # にインポートし、それを使用するようにインターセプター LicenseCheckInterceptor を構成するだけです。設定メソッドは InterceptorConfig クラスにあり、それを参照できます。 ライセンスを使用するには、license.lic、publicCerts.keystoreの 2 つのファイルが必要であることに注意してください。デモ プロジェクトで設定されているパスは絶対パスです。通常は相対パスを設定します。ファイルをプロジェクトの下に置きます。設定の場所は LicenseCheckListener クラス内にあります。相対パスから読み取るように次の部分を変更するだけです。
ここではやり方は説明しませんが、簡単に修正できるので修正しました。 もう 1 つ注意すべき点: LicenseCheckModel クラスと LicenseCreatorParam クラスについては、これらを独自のクライアントに導入した後、パッケージ名がライセンス生成時のパッケージ名と一致していることを確認する必要があります。そうしないと、シーケンス変換失敗の問題が発生します。
以上がSpringBoot がライセンスを生成する方法を理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。