374.3. 基本示例
以下示例显示了组件的基本用法。
from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor", "xmlsecurity:verify://enveloping?keySelector=#selector", "mock:result")
在 Spring XML 中:
<from uri="direct:enveloping" /> <to uri="xmlsecurity:sign://enveloping?keyAccessor=#accessor" /> <to uri="xmlsecurity:verify://enveloping?keySelector=#selector" /> <to uri="mock:result" />
对于签名过程,需要私钥。您可以指定提供此私钥的密钥 accessor bean。对于验证,需要对应的公钥;您可以指定一个提供此公钥的密钥选择器 bean。
密钥访问器 Bean 必须实施 KeyAccessor
接口。软件包 org.apache.camel.component.xmlsecurity.api
包含从 Java 密钥存储读取私钥的默认实施类 DefaultKeyAccessor
。
节点选择器 bean 必须实施 javax.xml.crypto.KeySelector
接口。软件包 org.apache.camel.component.xmlsecurity.api
包含从密钥存储读取公钥的默认实施类 DefaultKeySelector
。
在这个示例中,使用默认的签名算法 http://www.w3.org/2000/09/xmldsig#rsa-sha1
。您可以通过选项 signatureAlgorithm
设置您选择的签名算法(请参阅以下)。签名者端点 会创建一个信封 XML 签名。如果要创建 信封 XML 签名,那么您必须指定 Signature 元素的父元素;有关更多详情,请参阅 parentLocalName
选项。
有关创建 分离的 XML 签名,请参阅子章节 "Detached XML Signatures as Siblings of the Signed Elements"。