gpt4 book ai didi

java - xades4j:仅签署一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:00 25 4
gpt4 key购买 nike

我使用此代码来签署 xml 文档:

Document doc = getDocument(xml_to_sign);
Element elemToSign = doc.getDocumentElement();

String file_uri_path = elemToSign.getBaseURI();

DataObjectDesc obj1 = new DataObjectReference(file_uri_path).withType("http://www.gzs.si/shemas/eslog/racun/1.5#Racun");
SignedDataObjects dataObjs = new SignedDataObjects(obj1);

signer.sign(dataObjs, elemToSign);

xml_to_sign 是 xml 文件的完整路径。

问题是,我只想对 id 为“data”(#data)的节点进行签名,但将签名附加到节点 elemToSign。

可以使用 xades4j 做到这一点吗?

最佳答案

是的,确实如此。 sign method的参数是父节点,而不是要签名的元素(它可能是同一节点,具体取决于配置的引用)。在您的示例中,您应该添加“#data”的引用:

Document doc = getDocument(xml_to_sign);
Element parent = doc.getDocumentElement();

DataObjectDesc obj1 = new DataObjectReference("#data").withType("http://www.gzs.si/shemas/eslog/racun/1.5#Racun");
SignedDataObjects dataObjs = new SignedDataObjects(obj1);

signer.sign(dataObjs, parent);

另一个选项是添加整个 XML 文档(空 URI)的引用并使用 XPath 转换。

关于java - xades4j:仅签署一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28090724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com