Heim  >  Artikel  >  Java  >  So verstehen Sie, wie SpringBoot eine Lizenz generiert

So verstehen Sie, wie SpringBoot eine Lizenz generiert

PHPz
PHPznach vorne
2023-05-14 08:16:051206Durchsuche

Vorwort

Lizenz bezieht sich auf die Urheberrechtslizenz. Wenn wir nach der Entwicklung des Systems nicht möchten, dass Benutzer es ständig kostenlos nutzen, z. B. indem wir es zeitabhängig erneuern, ist die Lizenz nützlich.

Wir können die Gültigkeitsdauer der Lizenz für das System festlegen und die verfügbare Zeit des Systems steuern.

Wie füge ich für das SpringBoot-Projekt eine Lizenz hinzu? Als nächstes bringt Ihnen der Prinz eine Reihe von Lösungen. (Natürlich gibt es mehr als eine Möglichkeit, es zu implementieren)

Das Tool zum Generieren einer Lizenz

wurde gepackt und Freunde können es herunterladen und direkt verwenden: https://gitee.com/lm970585581/spring-boot2-license

Nach dem Download Cloud-Lizenz öffnen – Das Serve-Projekt kann direkt gestartet werden.

Dann rufen Sie die Informationserfassungsschnittstelle des Projekts auf: http://localhost:9081/license/getServerInfos?osName=windows

Sie erhalten Ergebnisse ähnlich den folgenden, die die IP-Adresse, die Mac-Adresse, die CPU-Seriennummer usw. darstellen Seriennummer des Motherboards bzw.

{
    "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"
}

Verwenden Sie das Keytool-Tool, das mit JDK geliefert wird, um den Zertifikatsspeicher für öffentliche und private Schlüssel zu generieren:

Wenn wir das Kennwort für den öffentlichen Schlüsselspeicher auf public_password1234 und das Kennwort für den privaten Schlüsselspeicher auf private_password1234 festlegen, lautet der generierte Befehl wie folgt :

#生成命令
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"

Nachdem der obige Befehl ausgeführt wurde, werden drei Dateien im aktuellen Pfad generiert, nämlich: privateKeys.keystore, publicCerts.keystore und certfile.cer. Die Datei certfile.cer wird nicht mehr benötigt und kann gelöscht werden. Die Datei privateKeys.keystore wird im aktuellen ServerDemo-Projekt zum Generieren von Lizenzdateien für Kunden verwendet, während die Datei publicCerts.keystore mit dem Anwendungscode auf dem Kundenserver bereitgestellt wird. Der Benutzer entschlüsselt die Lizenzdatei und überprüft ihre Lizenzinformationen.

Schließlich generieren wir die Lizenz und die aufrufende Schnittstellenadresse lautet: http://localhost:9081/license/generateLicense

Der aufrufende Parameter ist ein JSON-Parameter mit dem folgenden Format:

{
    "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"
    }
}

Wenn die Anfrage erfolgreich ist, dann Der Parameter „licensePath“ lautet schließlich: Der festgelegte Pfad generiert eine Datei „license.lic“, bei der es sich um die Serverlizenzdatei für die Bereitstellung von Code für Kunden handelt.

Lizenz verwenden

Wenn Sie die oben genannten Schritte Schritt für Schritt befolgen, haben wir die Lizenz.lic erhalten und der nächste Schritt besteht darin, die Lizenz in unseren eigenen Projekten zu verwenden.

cloud-license-client ist ein Beispiel für ein importiertes Projekt. Sie können es öffnen und direkt verwenden.

Um Ihr eigenes Projekt vorzustellen, importieren Sie einfach die folgenden Dateien

So verstehen Sie, wie SpringBoot eine Lizenz generiert

und konfigurieren Sie den Interceptor LicenseCheckInterceptor für die Verwendung. Die Konfigurationsmethode befindet sich in der InterceptorConfig-Klasse, auf die Sie verweisen können.

Hier ist zu beachten, dass für die Verwendung der Lizenz zwei Dateien erforderlich sind: License.lic, publicCerts.keystore

Der im Demoprojekt konfigurierte Pfad ist ein absoluter Pfad. Im Allgemeinen konfigurieren wir einen relativen Pfad und legen die beiden Dateien darunter ab Projekt und konfigurieren Sie den Speicherort in der LicenseCheckListener-Klasse

Ändern Sie einfach den folgenden Teil und ändern Sie ihn in eine relative Pfadlesung

So verstehen Sie, wie SpringBoot eine Lizenz generiert

Ich werde hier nicht zeigen, wie man es ändert, da es einfach zu ändern ist.

Noch etwas zu beachten:

Für die Klassen LicenseCheckModel und LicenseCreatorParam müssen Sie nach der Einführung in Ihren eigenen Client sicherstellen, dass der Paketname mit dem Paketnamen beim Generieren der Lizenz übereinstimmt, da es sonst zu einem Serialisierungsfehler kommt.

Das obige ist der detaillierte Inhalt vonSo verstehen Sie, wie SpringBoot eine Lizenz generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen