>  기사  >  Java  >  SpringBoot가 라이센스를 생성하는 방법을 이해하는 방법

SpringBoot가 라이센스를 생성하는 방법을 이해하는 방법

PHPz
PHPz앞으로
2023-05-14 08:16:051198검색

머리말

라이센스는 저작권 라이센스를 의미합니다. 시스템을 개발한 후 사용자가 시간에 따라 갱신하는 등 항상 무료로 사용하기를 원하지 않는 경우 라이센스가 유용합니다.

시스템 라이센스의 유효 기간을 지정하고 시스템 사용 가능 시간을 제어할 수 있습니다.

SpringBoot 프로젝트의 경우 라이선스를 어떻게 추가하나요? 다음으로, 왕자는 당신에게 일련의 해결책을 가져올 것입니다. (물론 이를 구현하는 방법은 여러 가지가 있습니다)

라이센스 생성 도구

가 패키지되어 있으며 친구들이 직접 다운로드하여 사용할 수 있습니다: https://gitee.com/lm970585581/spring-boot2-license

다운로드 후 클라우드 라이선스 오픈 - 서브 프로젝트를 바로 시작할 수 있습니다.

그런 다음 프로젝트의 정보 획득 인터페이스를 호출합니다: 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"

위 명령이 실행되면 현재 경로에 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

데모 프로젝트에서 구성된 경로는 절대 경로입니다. 일반적으로 우리는 상대 경로를 구성하고 두 파일을 LicenseCheckListener 클래스에서

다음 부분을 수정하고 상대 경로 읽기로 변경하면 됩니다.

SpringBoot가 라이센스를 생성하는 방법을 이해하는 방법

수정하기 쉽기 때문에 여기서는 수정 방법을 보여주지 않겠습니다.

한 가지 더 참고할 사항:

LicenseCheckModel 및 LicenseCreatorParam 클래스의 경우 클라이언트에 도입한 후 라이센스를 생성할 때 패키지 이름이 패키지 이름과 일치하는지 확인해야 합니다. 그렇지 않으면 직렬화 오류가 발생합니다.

위 내용은 SpringBoot가 라이센스를 생성하는 방법을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제