SOAP消息的签名验签Handler

 TODO:SOAP消息的签名验签 

现在需要解决的问题:

1、【2007-01-22】在Axis中,如果SOAP消息携带附件的时候,由SOAP报文转换成xml document时,解析报错,导致无法正确签名,SAX解析报错org.xml.sax.SAXParseException: :Content is not allowed in prolog。这里对SOAP报文的签名就是按照对XML文件签名处理,Web服务可以正确调用

解决:尚未解决

2、【2007-01-22】在服务器端,在一个web服务中,对于上传上来的XML文件,可以通过DOM解析,修改了Document之后,想通过Transformer将dom对象保存到XML文件中去,在通过 TransformerFactory得到Transformer实例语句处,Web服务直接终止。如果将保存上面的语句注释后,程序正常返回。不能使用TransformerFactory,不知道原因在哪?可不想自己将document内容写到文件中去。在第一行语句处Web服务就直接终止TransformerFactory tf = TransformerFactory.newInstance();
  Transformer t = tf.newTransformer();
//  doc.normalize();
  DOMSource ds = new DOMSource(doc);
  StreamResult sr = new StreamResult(new FileOutputStream(filePath));
  t.transform(ds, sr);,上面放在了一个try-catch中,但程序没有任何异常抛出,axis报出java.lang.reflect.InvocationTargetException,如果这个功能通过一个应用程序执行,没有任何问题,XML文件可以正常读入写入,通过Web服务的形式发布后,从客户端传过来的XML文件可以正常解析,并可以从DataHandler以流的形式写入到文件中

解决:解决。在使用TransformerFactory之前加上System.setProperty("javax.xml.transform.TransformerFactory", "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
一行代码就可以了。还有一种做法是配置一个jaxp.properties放在java_home/jre/lib/下,或者换成jdk1.4没有这个问题。 还有一点需要注意的就是在更新XML文件时,注意增加两个相同的Element

理论介绍

数据签名

文件摘要(MD5,SHA1)

文件签名

验证签名

签名Handler的实现

验签Handler的实现

Handler的部署

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值