Proteggere le applicazioni Spring Boot

Video introduttivi

▶️ YouTube

▶️ Bilibili

Scaricamento

Visita https://protector4j.com/download per scaricare l'ultima versione

Installazione

Windows e Linux

Non ci sono passaggi particolari per l'installazione, basta scaricare l'archivio ed estrarlo.

macOS

Scarica il file dmg e trascina Protector4J su ApplicationsIl contenuto effettivo di questo strumento è in /Applications/Protector4J.app/Contents/protector4j-mac

Crittografa le applicazioni Spring Boot con strumenti GUI

Vai alla cartella Protector4J, esegui p4j-ui[.exe], vedrai la seguente interfaccia utente.

Per gli utenti macOS, è sufficiente fare doppio clic su Protector4J.app come una normale applicazione Mac.

Login

Se hai già acquistato la licenza, clicca sul pulsante di accesso in alto a destra e inserisci i tuoi dati utente. Se non hai una licenza, puoi comunque provare questo strumento.

Seleziona il tipo di applicazione

Fare clic sul pulsante "Applicazione Spring Boot" nella pagina del tipo di applicazione.

Seleziona il file jar/war che deve essere crittografato

Seleziona i file jar/war che vuoi crittografare, puoi selezionare uno o più file

Opzioni

Crittografa solo i file jar

Crittografa solo i file jar, senza distribuire l'intero JRE. Questa opzione viene solitamente utilizzata in combinazione con la funzionalità KeySeed per aggiornare i programmi esistenti.

Crea file eseguibile

Creare un file eseguibile per avviare l'applicazione, non aggiungere l'estensione .exe.

Console nascosta

Questa opzione è efficace solo per i programmi GUI su Windows e viene utilizzata per nascondere la finestra della riga di comando durante l'esecuzione del programma.

Opzioni JVM

Impostare le opzioni JVM, come -Xmx e -Xms, separate da spazi o interruzioni di riga.

produzione

Selezione della versione Java

Scegli la versione Java, supportando Java 8, Java 11, Java 17 e Java 21

Crea una nuova cartella

Selezionando l'opzione predefinita, l'attività di crittografia creerà un file denominato p4j-[task-id] nella cartella di output. Il risultato dell'output viene archiviato in questa cartella.

Incluso JavaFX

Se si tratta di un'applicazione JavaFX, selezionare questa opzione

Applicazione SWT

Se si tratta di un'applicazione SWT, selezionare questa opzione.

KeySeed

Per impostazione predefinita, l'attività di crittografia richiederà una chiave casuale al server per la crittografia. I file generati in attività di crittografia diverse non possono essere utilizzati contemporaneamente. Se si specifica KeySeed, lo stesso KeySeed genererà la stessa chiave di crittografia. Questa opzione può essere utilizzata insieme alla precedente opzione "Crittografa solo file Jar" per aggiornare le applicazioni esistenti. Questa opzione è valida solo per gli utenti con licenza.

Esegui attività di crittografia

Attendi qualche istante, una volta completata l'attività di crittografia, potrai vedere il risultato di output dell'applicazione crittografata nella cartella di output.

Esegui applicazioni crittografate

Esistono tre modi per eseguire l'applicazione crittografata

  1. Esegui con il file exe

Se la piattaforma di destinazione è Windows, è possibile eseguire l'applicazione crittografata con il file eseguibile generato durante l'attività di crittografia.

  1. Esegui con script

Se la piattaforma di destinazione è Linux o macOS, puoi trovare un file di script con il nome exe-name.sh, puoi eseguire l'applicazione con questo file di script.

  1. Esecuzione del programma con i comandi Java tradizionali

È anche possibile eseguire manualmente il programma con vlxjre/bin/java; il formato di questo comando è lo stesso del normale comando Java.

Nella directory di output possiamo vedere una cartella denominata vlxjre, che è il nostro JRE personalizzato, mentre i file jar crittografati sono archiviati nella cartella vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 attualmente non supporta l'esecuzione tramite vlxjre/bin/java -jar. Utilizzare vlxjre/bin/java -cp xx MainClass

Avvisi

Se la piattaforma di destinazione di questo programma è macOS o Linux, ma è basato su Windows, eseguilo add-executable-permission.sh sulla piattaforma di destinazione per concedere l'autorizzazione di esecuzione al programma prima del primo avvio.

Modificare i parametri JVM del file exe

Finestre

Se è necessario modificare i parametri JVM del file exe, modificare exe-name.json e modificare i valori nell'array JArgs.

"JArgs": [
  "-DParam1=value1",
  "-DParam2=value2"
]

Linux e macOS

Basta aprire il file script e aggiungere o modificare i parametri JVM.

Crittografa le applicazioni Spring Boot con lo strumento CLI.

File di configurazione

Lo strumento CLI deve specificare un file di attività come parametro.

Vai al protector4j/task-templates cartella, trova spring-boot-task.yml, copiane e modificane uno.

# Available values: 8,11,17,21
javaVersion: 17

# The jar file of spring boot application
springBootJarFile: ''
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Executable file information ]
# The executable file name
exeFileName: ''
# Hide command line window, only valid for Windows
hideConsole: false
# The splash image
splash: ''
# JVM Options
jvmOptions: []

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Whether this is a JavaFX application
includeJavaFX: false
# Whether this a swt gui application
swtApplication: false
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, keep it empty for current plaform,
# available values: [win, linux, mac]
platforms: []

## [ Windows exe file information (Optional and only valid for Windows) ]
icon: ''
productName: ''
productVersion: ''
fileVersion: ''
fileDescription: ''
companyName: ''
legalCopyright: ''

Eseguire l&#39;attività di crittografia.

Andare alla cartella Protector4J ed eseguire il seguente comando.

Linux o macOS

Per gli utenti macOS, è possibile trovare lo strumento CLI all&#39;indirizzo /Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t spring-boot -f path-of-task-file

Finestre

p4j -t spring-boot -f path-of-task-file

Puoi eseguire p4j --help per visualizzare i parametri dettagliati.

Esegui con le informazioni dell&#39;account

./p4j -t spring-boot -f path-of-task-file -u email -p password

Visualizza i risultati

Una volta completata l&#39;attività di crittografia, accedere alla cartella di output per verificare i risultati.

Esegui applicazioni crittografate

Esistono tre modi per eseguire l&#39;applicazione crittografata

  1. Esegui con il file exe

Se la piattaforma di destinazione è Windows, è possibile eseguire l&#39;applicazione crittografata con il file eseguibile generato dall&#39;attività di crittografia.

  1. Esegui con script

Se la piattaforma di destinazione è Linux o macOS, puoi trovare un file di script con il nome exe-name.sh, puoi eseguire l&#39;applicazione con questo file di script.

  1. Esecuzione del programma con i comandi Java tradizionali

È anche possibile eseguire manualmente il programma con vlxjre/bin/java; il formato di questo comando è lo stesso del normale comando Java.

Nella directory di output possiamo vedere una cartella denominata vlxjre, che è il nostro JRE personalizzato, mentre i file jar crittografati sono archiviati nella cartella vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 attualmente non supporta l&#39;esecuzione tramite vlxjre/bin/java -jar. Utilizzare vlxjre/bin/java -cp xx MainClass

Avvisi

Se la piattaforma di destinazione di questo programma è macOS o Linux, ma è basato su Windows, eseguilo add-executable-permission.sh sulla piattaforma di destinazione per concedere l&#39;autorizzazione di esecuzione al programma prima del primo avvio.