我做了两个应该做同样事情的实现:用给定的X509证书对XML文件签名。
发生的事情是,对于要签名的完全相同的XML文件,它为SignatureValue生成了不同的值。但是XML的所有其他属性都完全相同:
我甚至尝试使用小型XML(例如,仅使用
除SignatureValue之外,是否所有其他
答案 0 :(得分:0)
我找到了解决方案。发生这种情况是因为Apache Santuario在签名标签中添加了换行符。因此,如果将Apache生成的标记和Java XML签名生成的标记进行比较,则
要解决此问题,我在签名前已放置了以下代码行。
System.setProperty("org.apache.xml.security.ignoreLineBreaks", "true")