16:56:06,477 DEBUG DOMReference:398 - Expected digest: 3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=
16:56:06,477 DEBUG DOMReference:399 - Actual digest: hesLZ/G8ekBPdFNGrxIJmxSYhhMC/BBHD6x/pHqXJt4=
16:56:06,477 DEBUG DOMXMLSignature:276 - Reference[#Body] is valid: false 我有一个用CXF完成的web服务,我只使用javax.xml.crypto包实用程序就完成了一个客户端。在客户端,当我检查签名的有效性时,它说是有效的。在这里我有"3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=".的身体切片摘要
然后,生成的SOAP消息被发送,在web服务端,它说实际摘要是其他东西,而不是我在客户端得到的东西。
有人能解释一下这件事吗?谢谢
发布于 2014-07-01 06:06:56
我是从一个文件中读取SOAP消息的。有一些非UTF8 8字符被纳入消化。然而,在消化之前,我是在规范化的,这应该解决这类问题。代码修改为只读取UTF-8数据,并解决了这个问题.
File attachmentFile = new File("soap_sample.xml");
FileInputStream fis = new FileInputStream(attachmentFile);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader in = new BufferedReader(isr);
StringBuffer buffer = new StringBuffer();
String inputLine = null;
while ((inputLine = in.readLine()) != null) {
buffer.append(inputLine);
}
InputStream is = IOUtils.toInputStream(buffer.toString(), "UTF-8");
SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(new MimeHeaders(), is);https://stackoverflow.com/questions/24489464
复制相似问题