WEB开发网
开发学院软件开发Java 使用 Java 验证 Lotus Forms XML 数字签名 阅读

使用 Java 验证 Lotus Forms XML 数字签名

 2010-01-15 00:00:00 来源:WEB开发网   
核心提示: 验证证书对于 Lotus Forms 中的已签署签名,证书链被放入到 Signature 元素的 KeyInfo 中,使用 Java 验证 Lotus Forms XML 数字签名(6),其中第一个证书为已签名证书,证书链可由 Java Certification Path API 进行检验,因

验证证书

对于 Lotus Forms 中的已签署签名,证书链被放入到 Signature 元素的 KeyInfo 中,其中第一个证书为已签名证书。证书链可由 Java Certification Path API 进行检验。此外,如果维护了可信的接受方名称列表,那么可以比较已签名证书的接受方,看看它是否匹配可信列表中的接受方。这一步骤可以确保表单的签名者是可信的。

分步运行样例代码

所需的库

Java 1.4 或 5 需要 JSR 105 实现。本文使用了 Apache XML Security Java 库。由于 Java XML Digital Signature API 已经被包含到 JDK 6 中,因此 Java 6 不需要任何额外的 JAR 文件。

针对 Java 6 的说明

从本文的下载小节下载包含所有样例代码和表单的 ZIP 文件

将文件解压缩到一个目录中,比如 /forms

切换到目录 /forms/xmldsig/bin: cd /forms/xmldsig/bin

确保使用了正确的 Java 版本:java -version

运行样例代码和表单:java xmldsig.FormVerification ../src/test/resource/form-signed.xfdl

一个已经发现的问题:在撰写本文时,IBM JDK6 中的 XMLDSig 实现有一个名称空间标准化 bug,并且不支持 here() 函数,因此无法使用它对样例表单进行验证。

针对 Java 1.4 或 5 的说明

从本文的下载小节下载包含所有样例代码和表单的 ZIP 文件

将文件解压缩到一个目录中,比如 /forms

从 http://xml.apache.org/security/dist/java-library/ 下载 Apache XML Security 库 xml-security-bin-1_4_2.zip

将其解压缩到 /forms(可以在随后的表单中看到目录 xml-security-1_4_2)

如果使用来自 Sun 的 Java 1.4 的话,将 xalan.jar、xml-apis.jar、serializer.jar 从 /forms/xml-security-1_4_2/libs 复制到 jre/lib/endorsed(参见 http://santuario.apache.org/Java/installation.html)

切换到目录 /forms/xmldsig/bin: cd /forms/xmldsig/bin

确保使用了正确的 Java 版本:java -version

运行样例代码和表单:java -classpath .;../../xml-security-1_4_2/libs/xmlsec-1.4.2.jar;../../xml-security-1_4_2/libs/commons-logging.jar;../../xml-security-1_4_2/libs/xalan.jar xmldsig.FormVerification ../src/test/resource/form-signed.xfdl

结束语

Lotus Forms 使用针对 XForms 和 XML Signature 的 W3C 标准来表示它的数字签名。因此,可以根据开放标准轻松地对表单进行验证,从而实现将其集成到企业应用程序流程中。

本文示例源代码或素材下载

上一页  1 2 3 4 5 6 

Tags:使用 Java 验证

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接