最近遇到一个问题,已经集成的jar中有部分依赖是官方显示有漏洞的版本,而客户那边扫描出该漏洞,要求修复。
而我这边只有jar包,没有源码…
一开始想过通过文件解压,把jar包解压后,将里面的依赖进行替换,然后重新压缩,后缀名修改为jar。
但事实证明这样不可行。
经过一番了解和尝试,记录一下。
逻辑上还是上面那样
- 解压jar包或者war包
- 替换依赖
- 压制jar包或war包
解压包
无论是jar包还war包都适用一下命令
jar -xvf xxx.jar
替换依赖
在对应存放依赖的目录进行替换
jar
BOOT-IF→lib
war
WEB-IF→lib
压制包
jar
jar -cfM0 xxx.jar BOOT-INF/ META-INF/ org/
war
jar -cfM0 xxx.war WEB-INF/ META-INF/ org/