CXF web服务(Java)中预期摘要和实际摘要之间的差异
我已经在CXF中完成了一个web服务,并且只使用javax.xml.crypto就完成了一个客户机 包实用程序。在客户端,当我检查签名的有效性时,它表示有效。其中,我的正文部分摘要为“3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=” 然后,生成的SOAP消息被发送,在web服务端,它说实际的摘要是其他东西,但不是我在客户端得到的 有人能解释一下吗?CXF web服务(Java)中预期摘要和实际摘要之间的差异,java,web-services,soap,digital-signature,Java,Web Services,Soap,Digital Signature,我已经在CXF中完成了一个web服务,并且只使用javax.xml.crypto就完成了一个客户机 包实用程序。在客户端,当我检查签名的有效性时,它表示有效。其中,我的正文部分摘要为“3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=” 然后,生成的SOAP消息被发送,在web服务端,它说实际的摘要是其他东西,但不是我在客户端得到的 有人能解释一下吗? 谢谢我正在从文件中读取SOAP消息。有一些非UTF8字符 包含在要消化的文档中。然而,我在《文摘》之前进行
谢谢我正在从文件中读取SOAP消息。有一些非UTF8字符 包含在要消化的文档中。然而,我在《文摘》之前进行了规范化,它应该解决这类问题。代码修改为只读UTF-8数据,并修复了该问题
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
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);