374.3. 基本示例
以下示例显示了组件的基本用法。
from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor", "xmlsecurity:verify://enveloping?keySelector=#selector", "mock:result")
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" />
<from uri="direct:enveloping" />
<to uri="xmlsecurity:sign://enveloping?keyAccessor=#accessor" />
<to uri="xmlsecurity:verify://enveloping?keySelector=#selector" />
<to uri="mock:result" />
对于签名过程,需要一个私钥。您可以指定一个提供此私钥的密钥访问器 bean。对于验证,需要对应的公钥 ; 您可以指定一个提供此公钥的密钥选择器 Bean。
密钥访问器 Bean 必须实现 KeyAccessor
接口。软件包 org.apache.camel.component.xmlsecurity.api
包含从 Java 密钥存储读取私钥的默认实现类 DefaultKeyAccessor
。
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 元素的 parent 元素;更多详情请参阅选项 parentLocalName
。
有关创建 分离的 XML 签名,请参阅子章节"分离 XML 签名作为 Signed Elements 的 Siblings"。