【问题标题】:error due to xml signature由于 xml 签名导致的错误
【发布时间】:2012-04-14 09:01:52
【问题描述】:

我有一个 xml 文档。当我使用 java 库打印文档时,我得到了正确的 xml 输出。然后我使用 xmlsignatures 对 xml 文档进行签名。签名后,我尝试再次打印文档。但是这一次文档的打印方式是所有 元素都是 JUMBLED 。所以我想知道xml签名是否修改了xml文档?如果是,那为什么?

【问题讨论】:

  • 如果您所说的混乱是指您的标签出现的顺序不同,这并不意外。 XML 文档不是“有序的”。
  • @Mat 你能详细解释一下吗?我的意思是如果想从元素中检索值,那么我必须面对问题,因为标签变得混乱
  • 基本上<a><one/><two/></a><a><two/><one/></a>是同一个文档。您不能依赖兄弟节点的相对排序,XML 规范不强制排序,并且不同的解析器/生成器将或不会保持原始排序。如果您的设计依赖于此,则需要审查您的设计。
  • @Mat 谢谢。这种混乱的事情是否也发生在元素的属性中?
  • 属性也没有排序。

标签: java xml-signature


【解决方案1】:

签名可以通过规范化来修改您的结构。这是必要的,因为您的 xml 可以有不同的有效表示。为了验证签名,各方必须就一种规范化的表示达成一致。

【讨论】:

  • 这不一定是真的。规范化是为了在后台计算签名而发生的,但文档在签名时并不正常,尤其是在签名方法被封装或分离的情况下。
【解决方案2】:

和@Mat 一样,我想详细了解您所说的 JUMBLED 是什么意思。 尽管如此,如果您选择了 ENVELOPED(或明显 DETACHED)签名方法,则不应更改原始文档的结构。 相反,选择 ENVELOPING 方法确实会通过将原始文档包装在一个包含签名的容器中来更改原始文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多