jdk1.5及原先版本使用xml signature 签名功能
JSR 105 (Java XML Digital Signature API Specification) 规定了 XML 数字签名规范的标准 Java 实现接口,于 2005 年 6 月 24 日最终发布。随后,于 2006 年秋季发布的 Java SE 6 (产品代号 Mustang) 将 JSR105 纳入 Java 标准库中,为基于 Java 的上层应用提供标准的 XML 数字签名支持。从此,需要使用 XML 安全特性的 Java 项目有了来自 Java 核心平台的基础支持,再也不需要为选择合适的第三方产品而烦恼。
但现在由于实现项目好多使用的是jdk1.5或以前版本, 如何在jdk1.5中使用jdk1.6中的xml 签名功能呢?经过探索,终于成功.
由于JSR是一种规范,jdk1.6只是实现了此规范, 我们只需找到第三方工具就可以实现, 现在应用比较广泛的开源产品是 Apache XML Security 项目,只需在网上下载此项目的jar包放到configure path路径下,你会发现eclipse下所有表示红色的类都消失了,问题解决。
但在运行时会报此错: javax.xml.crypto.NoSuchMechanismException: Mechanism type DOM not available
指向此行: XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");
这是只需该写代码为:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance
("DOM", new org.jcp.xml.dsig.internal.dom.XMLDSigRI());
在此运行,一切ok!
关于Apache XML Security jar包
1)apache官方下载地址:
http://santuario.apache.org/mirrors.cgi
2)本人上传的jar包,在附件,也可下载,
相比官方的多了帮助及实例代码
若有问题,欢迎联系我!