首页 > 解决方案 > 为什么我的 Reference(URI "") 解析为 ds:Manifest,而不是根元素,因为它应该?

问题描述

我已经生成了一个具有根元素的安全标签:带有子 MetadataBindingContainer 和签名的绑定信息。当我生成 XML 时,带有 URI"" 的引用会消化所有内容,但 SignatureValue 和引用本身除外。

之后,我想通过验证引用来验证标签(以及其他一些东西,但这与问题无关)。每个参考都得到很好的验证。例如对数据对象的引用和对清单的引用。但是,一旦它尝试验证整个文档(URI="")的引用,它就会失败。DigesterOutputStream 还显示,它只指向 Manifest。所以我进入代码并注意到,当它调用类 ResolverFragment(engineResolveURI) 中的 Function: context.attr.getOwnerElement().getOwnerDocument() 时,它没有得到预期的 Document,而只是 Manifest Element。我有一种感觉,BaseURI 不正确,所以我在 XMLSignatureObject 中更改了它,我调用的是 .getSignedInfo().verifyRreferences(true)。但它也没有奏效。

另一个猜测是,需要异常,我必须以另一种方式验证清单中的引用。

任何关于如何进行的建议都非常感谢。解决我的问题会更好。

标签: javaapachexml-dsig

解决方案


推荐阅读