ホームページ  >  記事  >  Java  >  SpringBoot がライセンスを生成する方法を理解する方法

SpringBoot がライセンスを生成する方法を理解する方法

PHPz
PHPz転載
2023-05-14 08:16:051117ブラウズ

はじめに

ライセンスとは、著作権ライセンスのことです。システムを開発した後、ユーザーに常に無料で使用してほしくない場合、たとえば時間に基づいて更新する場合、ライセンスは、便利である。

システムのライセンスの有効期間を指定し、システムの利用可能時間を制御できます。

では、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 はインポートされたプロジェクトの例であり、これを開いて直接使用できます。

独自のプロジェクトを導入するには、次のファイルを

SpringBoot がライセンスを生成する方法を理解する方法

# にインポートし、それを使用するようにインターセプター LicenseCheckInterceptor を構成するだけです。設定メソッドは InterceptorConfig クラスにあり、それを参照できます。

ライセンスを使用するには、license.lic、publicCerts.keystoreの 2 つのファイルが必要であることに注意してください。

デモ プロジェクトで設定されているパスは絶対パスです。通常は相対パスを設定します。ファイルをプロジェクトの下に置きます。設定の場所は LicenseCheckListener クラス内にあります。

相対パスから読み取るように次の部分を変更するだけです。

SpringBoot がライセンスを生成する方法を理解する方法

ここではやり方は説明しませんが、簡単に修正できるので修正しました。

もう 1 つ注意すべき点:

LicenseCheckModel クラスと LicenseCreatorParam クラスについては、これらを独自のクライアントに導入した後、パッケージ名がライセンス生成時のパッケージ名と一致していることを確認する必要があります。そうしないと、シーケンス変換失敗の問題が発生します。

以上がSpringBoot がライセンスを生成する方法を理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。