JCE cannot authenticate the provider BC ,has unsign 异常排查解决

2023-10-14 11:36

本文主要是介绍JCE cannot authenticate the provider BC ,has unsign 异常排查解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目场景:

线上项目登录入口发送变化,需要改造用户登录接口,改造接口就要涉及到加解密的操作。

加解密用hutool 工具包来实现的,完成功能后,本地调试验证没什么问题。但后面部署到测试环境的时候就出问题了。


问题描述

异常信息如下:

at org.apache.catalina,core.StandardHostValve.invoke(StandardHostValve,java:143)
at org.apache,catalina.valves.ErrorReportValve,invoke(ErrorReportValve.java:92)
at org.apache.catalina.core,StandardEngineValve,invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter,service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor,iava:374)
at org.apache,coyote,AbstractProcessorLight,process(AbstractProcessorLight,java:65)
at org.apache.coyote,AbstractProtocol$ConnectionHandler,process(AbstractProtocol,java:888
at org.apache.tomcat,util,net.NioEndpoint$SocketProcessor,doRun(NioEndpoint.java:1597
at org,apache.tomcat,util,net.SocketProcessorBase,run(SocketProcessorBase.java:49)
at java,util.concurrent,ThreadPoolExecutor,runlorker(ThreadPoolExecutor.java:1149
at java.util.concurrent.ThreadPoolExecutorsWorker,run(ThreadPoolExecutor,java:624
at org.apache.tomcat.util,threads ,TaskThread$wrappingRunnable, run(TaskThread,java:61)
at java.lang.Thread.run(Thread .java:748)
caused by: java.lang.SecurityException: JCE cannot authenticate the provider BC
at javax.crypto.Cipher.getInstance(Cipher,java:656)at cn.hutool.crypto.Secureutil.createCipher(SecureUtil.java:985)
caused by:java.util.jar.JarException:jar:file:/home/xx/xx/xxx-xx-1.0.0,jar!/B00T-INF/lib/xxxx-api-1.0.0.jar!/ has unsign xx/xx/message/api/config/xx.class
at iavax.crypto.JarVerifverifySingleJar(JarVerifier.java:502)
at javax.crypto.JarVerifier.verifyJars(JarVerifier.java:363)
at javax.crypto.JarVerifier.verify(JarVerifier.java:289)
at javax.crypto.JceSecurityverifyProviderJar(JceSecurity.iava:164)

原因分析:

排查思路:

1、是不是maven没有把hutool包打到jar包里面。  然后使用 jad反编译jar,去lib文件找一下 有没有打进去。

        验证结果。 hutool已经打进去了。

2、百度一下异常问题,网上说是 jre环境中缺少 bcprov-jdk15on-1.57.jar 影响到的。

         但我去本地的jre环境里面找了,没有这个包,但也可以正常运行。有可能是本地环境这个包的依赖。

        测试环境验证,下载 bcprov-jdk15on-1.57.jar,我是通过maven的方式下载下来的。放到按照网上说的路径 \jdk1.8.0_131\jre\lib\ext。 重启项目服务,问题解决。

              


解决方案:

1、将bcprov-jdk15on-1.57.jar上传到服务器上,找到安装jdk的文件目录,然后按这个路径\jdk1.8.0_131\jre\lib\ext ,把jar包放进去即可。

2、网上有说,还需要添加配置信息(实操验证,不用加配置)

在jdk中,\jdk1.8.0_131\jre\lib\security目录下的,在文件“java.security” 添加如下: 
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider  

 security.provider.10是按 实际配置信息顺序 累加1 来定的


 

这篇关于JCE cannot authenticate the provider BC ,has unsign 异常排查解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210232

相关文章

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

MAVEN3.9.x中301问题及解决方法

《MAVEN3.9.x中301问题及解决方法》本文主要介绍了使用MAVEN3.9.x中301问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录01、背景02、现象03、分析原因04、解决方案及验证05、结语本文主要是针对“构建加速”需求交

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)