XADES4j-XML签名验证错误-未指定签名节点



我来用XAdES4j对XML文件进行签名,但在验证时,我总是得到"未指定签名节点"。显然signatureParent就是null!如何解决?

这是我的代码:

FileSystemDirectoryCertStore certStore = new FileSystemDirectoryCertStore(".");
KeyStore trustAnchors = createAndLoadJKSKeyStore(".\myStore", "mystorepass");
CertificateValidationProvider certValidator = new PKIXCertificateValidationProvider(trustAnchors, false, certStore.getStore());
XadesVerificationProfile p = new XadesVerificationProfile(certValidator);
XadesVerifier v = p.newVerifier();
Document sourceDoc = Signapp.getDocument(".\TEST.XML.FILE.xml");
Element signatureParent = (Element)sourceDoc.getElementsByTagNameNS(Constants.SignatureSpecNS, Constants._TAG_SIGNATURE).item(0);;
XAdESVerificationResult r = v.verify(signatureParent,null);

这里是我的getDocument方法:

        File fXmlFile = new File(path);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);
        doc.getDocumentElement().normalize();
        return doc;

您需要:

dbFactory.SetNamespaceAware(true);

https://docs.oracle.com/javase/6/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#setNamespaceAware(布尔值)

最新更新