ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256
報(bào)錯(cuò)關(guān)鍵信息:
?
?
?
[Illegal access: this web application instance has been stopped already. Could not load [org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.] java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. … com.ntko.docsign.sdk.gm.GMDigitalSeal : SealValidationErr:SEAL_SIGNATURE_INIT_ERRjava.security.NoSuchAlgorithmException: class configured for Signature (provider: BC) cannot be found. … Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256當(dāng)然應(yīng)用報(bào)錯(cuò)還有其他的信息,我這里把關(guān)鍵的信息提取出來:
1、?Could not load [org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256].
2、java.security.NoSuchAlgorithmException: class configured for Signature (provider: BC) cannot be found.
3、Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256
可以看到 整個(gè)應(yīng)用報(bào)錯(cuò),實(shí)際是指向?org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256? 提示java.security.NoSuchAlgorithmException: 沒有這樣的加密算法導(dǎo)致的。
意思是:當(dāng)前使用的java jdk環(huán)境 的JCE不支持RSA SHA256的加密算法。 而應(yīng)用本身有用到,但是找不到,不好意思,我要給你報(bào)錯(cuò)了。
針對這種問題,我們參考官方的資料 :https://www.oracle.com/java/technologies/javase-jce-all-downloads.html, 可知?在早于8u161, 7u171, and 6u181的JDK8、7版本上默認(rèn)是沒有支持RSA256及以上算法的。?
實(shí)際使用過程中我們可以發(fā)現(xiàn):Oracle的JDK8、OpenJDK8的版本都有可能會(huì)有這樣的問題。默認(rèn)不支持增強(qiáng)型加密算法,如果是128位的加密算法可能就不會(huì)出現(xiàn)這樣的問題了。?
?
那針對這種類型的問題,我們也可以修改java 的JCE安全策略,來使得其支持增強(qiáng)型加密算法。
觀察對應(yīng)JDK目錄結(jié)構(gòu)可以發(fā)現(xiàn):在jdk安裝目錄下的jre/lib/security/policy里有l(wèi)imited與unlimited文件夾,這兩個(gè)文件夾里的文件名是一樣的:local_policy.jar與US_export_policy.jar
?
根據(jù)官方資料,可得知limited里的策略配置就是支持增強(qiáng)型加密算法的,我們將limited文件夾下的文件拷貝到policy目錄下:
cp policy/limited/local_policy.jar /usr/local/java/jdk1.8.0_311/jre/lib/security/policy/local_policy.jar
sudo cp policy/limited/US_export_policy.jar /usr/local/java/jdk1.8.0_311/jre/lib/security/policy/US_export_policy.jar ?#將jre/lib/jre/lib/security/policy/下limited下的jar拷貝到policy文件夾下
?
之后再重新啟動(dòng)Tongweb應(yīng)用服務(wù)器,再嘗試蓋章可發(fā)現(xiàn)office等蓋章應(yīng)用已正常蓋章。其他應(yīng)用服務(wù)器可同樣處理辦法。
如果,您使用的版本不是我這樣的情況,就參考官方資料下載jar文件,然后放好,應(yīng)該就可以了。
總結(jié)
以上是生活随笔為你收集整理的ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用计算机算自己的月经周期,月经周期计
- 下一篇: 一加8T可以升级鸿蒙吗,一加8T为什么值