bcprov-jdk16与bcprov-jdk15on:如何处理不兼容问题?
  pqAX7O1cOBiF 2023年11月28日 14 0

先看下maven中心仓库bcprov有哪些版本,目前遇到的最多情况就是有关jdk16和jdk5on不兼容的问题,可以看下两个版本的对应发布日期。jdk16 的最新版本1.46发布时间是2011年,jdk15on最老版本1.46的发布时间是2012年。

bcprov-jdk16与bcprov-jdk15on:如何处理不兼容问题?_解决方案

bcprov-jdk16与bcprov-jdk15on:如何处理不兼容问题?_jar_02

在尝试将jdk16的sm2部分调用方式调整为jdk15on调用方式之后,项目原来的sm2无法正常加解密了,升级失败。但对接方提供的是jdk15on,想着把jdk15on的包路径修改一下,这样就可以和jdk16共存,之前也涂鸦过一篇解决多版本依赖jar(需共存时的)冲突问题,我本地使用的是openjdk可以正常运行,而java hotspot校验包签名导致运行失败。所以这就产生了第一个解决方案,如果运行环境使用的是openjdk可以修改包路径解决共存问题,修改包路径可以使用工具jar-jar,也可以使用maven插件maven-shade-plugin。


第二种解决方案是修改低版本的jdk16包路径,引用到jdk16组件的地方调整下包路径,在openjdk和java hotspot下均可正常运行,这也符合正常逻辑,改旧不改新。


第三种解决方案是把jdk16和jdk15on分别放在两个地方,通常业务系统A会通过统一的出口系统B去对接外部系统,加解密这块正常放在B系统,对接不同的渠道一般会有不同的策略。所以,可以把加解密这个工作放到系统A特殊处理下,B系统在对应的策略中直接转发。

时间宝贵,随手记录,感谢阅读,希望本文能够给您带来一丝启发和帮助。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
pqAX7O1cOBiF