记一次bouncycastle jar 包冲突经历

背景:

        由于从事银行金融系统,所以经常用到加密的东西,有一次使用到国密SM2的验签功能,在本地进行测试时完全没问题,发布到服务器上面后一直报 Hex 包中的decodeStrict方法不存在

排查:

        使用到的jar包版本为 bcprov-jdk15on-1.68.jar,在服务器上面查看应用部署路径下是存在Hex.decodeStrict()方法的,但是就是一直报找不到该方法,

        后来怀疑可能是存在jar包冲突,在应用路径下反复查看是否存在相同路径的类,然后都没有发现任何端倪。由于我们系统都是部署在weblogic下面的,所以又查看了weblogic目录下的module文件夹,一般weblogic的jar包都部署在该文件夹下,但是依然一无所获

        由于java类加载器是按照双亲委派机制加载,先加载bootstrap(也就是jdk的jar包)下面的jar包,再加载ext下的扩展jar包,然后才是AppClassLoader,后续排查weblogic中环境变量设置和系统环境变量中加载的jar包路径,发现weblogic还去加载了oracle_common下的modules模块,终于在该模块下发现了低版本的bcprov-jdk15on jar包中的Hex类缺失了decodeStrict方法,因此报了该错误

解决:

        将oracle_common下的bcprov-jdk15on jar包删除即可,让应用只加载bcprov-jdk15on-1.68.jar即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值