?? 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包,在附件,也可下载,
相比官方的多了帮助及实例代码
若有问题,欢迎联系我!?