保护Tomcat Web应用
入门视频
▶️ https://www.youtube.com/watch?v=7d8afvHc2V4
下载
访问 https://protector4j.com/download 下载最新版。
安装
Windows 与 Linux
没有特别的安装步骤, 只需要下载压缩包并解压即可。
macOS
下载dmg文件并拖拽Protector4J到Applications, 程序的实际内容在Protector4J.app/Contents/protector4j-mac

使用GUI工具加密JavaSE应用
进入Protector4J文件夹, 运行p4j-ui[.exe] , 你将会看到下面的用户界面
对于macOS用户, 像普通mac应用一样双击Protector4J.app即可

登录
如果你已经购买了授权, 请点击右上角的登录按钮,输入用户信息,如果没有授权,您仍然可以试用这个工具

选择应用类型
在程序类型页面点击"JavaSE Application"按钮。

选择需要加密的jar/war文件
选择需要加密的jar/war文件,可以单选或者多选

Options
Just encrypt jar files
只加密jar文件,不输出整个jre, 这个选项通常与KeySeed特性结合使用,用于更新现有的程序。
输出

Java版本选择
选择对应的Java版本, 支持Java 8, Java 11 and Java 17.
创建新文件夹
默认选择, 加密任务会在输出文件夹中创建一个名为 p4j-[task-id]的文件夹, 最终输出的结果存储在这个文件夹中。
KeySeed
默认情况下加密任务每次都会从服务端请求一个随机的key用于加密, 在不同加密任务中生成的文件无法兼容使用。 如果指定了KeySeed,相同的的KeySeed会生成相同的加密Key, 这个选项可以与之前的“Only Encrypt Jar Files”用于更新现有应用。这个选项仅对授权用户有效。
执行加密任务
请等待一段时间,待加密任务完成之后,您可以在输出文件夹中看到输出的加密应用。

运行加密的应用
进入到输出文件夹, 执行 tomcat/bin/startup.sh 或 tomcat/bin/startup.bat 以启动应用
META-INF/classes 在哪里
你可以在webapps文件夹中找到你的应用,但是原来的WEB-INF/classes不再存在了,为了能够保护应用结构,避免外部用户获取类名等信息,我们已经将WEB-INF/classes打包进WEB-INF/vlxapp.jar,这是我们私有的一个加密jar格式。
WEB-INF/vlxapp.jar
If the application is for macOS or Linux and is generated under Windows, please execute add-executable-permission.sh first to give the program executable permission.
注意事项
如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。
使用命令行工具加密Tomcat Web应用
配置文件
命令行工具需要指定一个任务文件作为参数
在task-templates文件夹中找到tomcat-task.yml,复制并且修改
# Available values: 8,11,17
javaVersion: 8
# The war files that need to be encrypted
warFiles: []
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false
## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# 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, available values: [win, linux, mac] or emtpy for current platforms
# if you need the support for win32, linux32 and linux-aarch64, the addon need to be purchased, please visit https://protector4j.com/addons
platforms: []
执行加密任务
进入到Protector4J文件夹执行下面命令
On Linux or macOS
对于macOS用户,你可以在Protector4J.app/Contents/protector4j-mac下找到cli工具
./p4j -t tomcat -f path-of-task-file
On Windows
p4j -t tomcat -f path-of-task-file
> -t task type > > -f task file
可以运行p4j --help查看详细参数
添加用户信息运行
./p4j -t tomcat -f path-of-task-file -u email -p password
查看结果
加密任务完成之后,请前往输出文件夹查看结果。
运行加密的应用
进入到输出文件夹, 执行 tomcat/bin/startup.sh 或 tomcat/bin/startup.bat 以启动应用
META-INF/classes 在哪里
你可以在webapps文件夹中找到你的应用,但是原来的WEB-INF/classes不再存在了,为了能够保护应用结构,避免外部用户获取类名等信息,我们已经将WEB-INF/classes打包进WEB-INF/vlxapp.jar,这是我们私有的一个加密jar格式。
WEB-INF/vlxapp.jar
If the application is for macOS or Linux and is generated under Windows, please execute add-executable-permission.sh first to give the program executable permission.
注意事项
如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。