ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256
報錯關鍵信息:
?
?
?
[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當然應用報錯還有其他的信息,我這里把關鍵的信息提取出來:
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
可以看到 整個應用報錯,實際是指向?org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256? 提示java.security.NoSuchAlgorithmException: 沒有這樣的加密算法導致的。
意思是:當前使用的java jdk環境 的JCE不支持RSA SHA256的加密算法。 而應用本身有用到,但是找不到,不好意思,我要給你報錯了。
針對這種問題,我們參考官方的資料 :https://www.oracle.com/java/technologies/javase-jce-all-downloads.html, 可知?在早于8u161, 7u171, and 6u181的JDK8、7版本上默認是沒有支持RSA256及以上算法的。?
實際使用過程中我們可以發現:Oracle的JDK8、OpenJDK8的版本都有可能會有這樣的問題。默認不支持增強型加密算法,如果是128位的加密算法可能就不會出現這樣的問題了。?
?
那針對這種類型的問題,我們也可以修改java 的JCE安全策略,來使得其支持增強型加密算法。
觀察對應JDK目錄結構可以發現:在jdk安裝目錄下的jre/lib/security/policy里有limited與unlimited文件夾,這兩個文件夾里的文件名是一樣的:local_policy.jar與US_export_policy.jar
?
根據官方資料,可得知limited里的策略配置就是支持增強型加密算法的,我們將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文件夾下
?
之后再重新啟動Tongweb應用服務器,再嘗試蓋章可發現office等蓋章應用已正常蓋章。其他應用服務器可同樣處理辦法。
如果,您使用的版本不是我這樣的情況,就參考官方資料下載jar文件,然后放好,應該就可以了。
總結
以上是生活随笔為你收集整理的ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用计算机算自己的月经周期,月经周期计
- 下一篇: matlab 地震正演程序,seismi