370.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" />
对于签名过程,需要私钥。您可以指定一个提供此私钥的密钥访问者。对于验证,需要对应的公钥;您可以指定一个提供此公钥的密钥选择器为an。
密钥 accessor bean 必须实施 KeyAccessor
接口。软件包 org.apache.camel.component.xmlsecurity.api
包含默认的实施类 DefaultKeyAccessor
,它从 Java 密钥存储读取私钥。
key selector 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 元素的父元素;如需更多信息,请参阅 父LocalName
选项。
有关创建 分离的 XML 签名,请参阅子章节 "Detached XML Signatures as Sibling of the Signed Elements"。