【发布时间】:2022-08-06 04:43:32
【问题描述】:
我正在尝试对 xml 文件进行数字签名。此代码正在异步运行
ExecutorService executor = Executors.newFixedThreadPool(10);
当代码运行一次然后输出异常:
javax.xml.crypto.dsig.XMLSignatureException: java.security.SignatureException: Bad UID.
at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.sign(DOMSignatureMethod.java:345)
at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:405)
at com.chubb.util.XMLSignerUtil.signXMLContent(XMLSignerUtil.java:173)
at com.chubb.util.XMLSignerUtil.signFile(XMLSignerUtil.java:187)
at com.chubb.face.INVPanelXml$SignWorker.signContract(INVPanelXml.java:396)
at com.chubb.face.INVPanelXml$SignWorker.run(INVPanelXml.java:362)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
原因:java.security.SignatureException:错误的 UID。
at jdk.crypto.mscapi/sun.security.mscapi.CSignature.signHash(Native Method)
at jdk.crypto.mscapi/sun.security.mscapi.CSignature$RSA.engineSign(CSignature.java:220)
at java.base/java.security.Signature$Delegate.engineSign(Signature.java:1403)
at java.base/java.security.Signature.sign(Signature.java:712)
at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.sign(DOMSignatureMethod.java:343)
... 8 more
java.security.SignatureException:错误的 UID。
at jdk.crypto.mscapi/sun.security.mscapi.CSignature.signHash(Native Method)
at jdk.crypto.mscapi/sun.security.mscapi.CSignature$RSA.engineSign(CSignature.java:220)
at java.base/java.security.Signature$Delegate.engineSign(Signature.java:1403)
at java.base/java.security.Signature.sign(Signature.java:712)
at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.sign(DOMSignatureMethod.java:343)
at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:405)
at com.chubb.util.XMLSignerUtil.signXMLContent(XMLSignerUtil.java:173)
at com.chubb.util.XMLSignerUtil.signFile(XMLSignerUtil.java:187)
at com.chubb.face.INVPanelXml$SignWorker.signContract(INVPanelXml.java:396)
at com.chubb.face.INVPanelXml$SignWorker.run(INVPanelXml.java:362)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
标签: java xml digital-signature xml-signature