Мне нужно проверить подпись XADES в подписанном XML-файле. Я использую xades4j v. 1.4.0, но при проверке метода вызова выбрасывается java.lang.ArrayIndexOutOfBoundsException: 0. С одним файлом работает, с другим нет.
Я пробовал в режиме отладки и выдавал исключение в классе метода checkForm -XAdESFormChecker.
Мой код:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(inputStream);
DOMHelper.useIdAsXmlId(doc.getDocumentElement());
NodeList nList = doc.getElementsByTagName("ds:Signature");
Element elem = null;
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
elem = (Element) nNode;
elem.setIdAttributeNS(null, "Id", true);
}
}
data = item.getData();
CertificateValidationProvider certValidator = new CertificateValidationProviderImpl();
XadesVerificationProfile p = new XadesVerificationProfile(certValidator);
XadesVerifier v = p.newVerifier();
SignatureSpecificVerificationOptions opts = new SignatureSpecificVerificationOptions().useDataForAnonymousReference(data);
XAdESVerificationResult result = v.verify(elem, opts);
Подпись: Xml-подпись
Вы можете помочь мне? В чем ошибка?
РЕДАКТИРОВАТЬ - ТРАССИЯ СТЕКА
*java.lang.ArrayIndexOutOfBoundsException: 0 в xades4j.verification.XAdESFormChecker$XAdESFormDesc.getPrevious(XAdESFormChecker.java:109) в xades4j.verification.XAdESFormChecker.checkForm(XAdESFormChecker.java:55) в xades4j.verification.XadesVerifierXmplades.VerifyImpl .java:213) в it.yyy.kkkFramework.albo.InserimentoRichiestaController.listenerUploadDoc(InserimentoRichiestaController.java:1811) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) в sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke(Method.java:597) в com.sun.el.parser.AstValue.invoke(AstValue.java: 187) в com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) в com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) в org.richfaces.event.MethodExpressionE ventListener.processEvent(MethodExpressionEventListener.java:125) в org.richfaces.view.facelets.FileUploadHandler$FileUploadListenerImpl.processFileUpload(FileUploadHandler.java:55) ...