大家好,
我正在测试一些验证XML数字签名的Java代码。我正在使用JDK中的标准JSR 105 API。我使用了独占规范化方法和包含在信封中的签名。传入的XML消息看起来像这样:
<doc xmlns:a="urn:abc.my.domain.com">
<a:x>12345</a:x>
</doc>
这条消息经过一个复杂的系统,其中涉及各种 XML 解析器(CXF、JAXB、XSLT 等),最终变成了这样:
<doc xmlns:b="urn:abc.my.domain.com">
<b:x>12345</b:x>
</doc>
更改后,附加的 XML 签名将不再通过验证。引用无效。
我的观点是,即使这个 XML 文档已经变化,它看起来仍然是等效的 XML。唯一变化的是命名空间前缀。我不确定命名空间前缀的更改是否符合 XML 规范化的规则。我的问题是:
- 这应该可以实现吗?
- 如何实现(转换等)?
感谢任何帮助,
g8torPaul