374.5. 端点选项


XML 安全端点使用 URI 语法进行配置:

xmlsecurity:command:name

使用以下路径和查询参数:

374.5.1. 路径参数(2 参数):

名称描述默认值类型

命令

必需 是否签名或验证。

 

XmlCommand

name

必需 URI 中的名称部分,用户可以选择它来区分 camel 上下文中的不同签名/验证器端点。

 

字符串

374.5.2. 查询参数(35 参数):

名称描述默认值类型

baseUri (common)

您可以设置基础 URI,用于 URI 取消引用。然后,相对 URI 与基础 URI 串联。

 

字符串

clearHeaders (common)

确定在签名和验证后是否清除 XML 签名特定标头。默认值为 true。

true

布尔值

cryptoContextProperties (common)

设置加密上下文属性。请参阅链接 XMLCryptoContext#setProperty (String, Object)。可能的属性在 XMLSignContext 中定义,一个 XMLValidateContext (请参阅支持的属性)。默认情况下,将以下属性设置为 XML 验证的布尔值 .TRUE。如果要关闭这些功能,您必须将属性值设置为 boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference

 

Map

disallowDoctypeDecl (common)

不允许传入的 XML 文档包含 DTD DOCTYPE 声明。默认值为 boolean#TRUE。

true

布尔值

omitXmlDeclaration (common)

指明传出消息正文中的 XML 声明是否应省略。默认值为 false。可以被标头 XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION 覆盖。

false

布尔值

outputXmlEncoding (common)

生成的签名 XML 文档的字符编码。如果为 null,则使用原始 XML 文档的编码。

 

字符串

schemaResourceUri (common)

指向 XML 架构的 classpath。必须在分离的 XML 签名问题单中指定,以确定 ID 属性,可以在信封和信封案例中设置。如果设置,则使用指定的 XML 模式验证 XML 文档。schema 资源 URI 可以被标头 XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI 覆盖。

 

字符串

同步 (advanced)

设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。

false

布尔值

uriDereferencer (advanced)

如果要通过参考 URI 限制远程访问,您可以设置自己的 dereferencer。可选参数。如果没有设置提供程序默认解引用器,则使用它来解决 URI 片段、HTTP、文件和 XPpointer URI。注意:实现依赖于供应商!

 

URIDereferencer

addKeyInfoReference (sign)

为了保护 KeyInfo 元素免受篡改,您可以添加对已签名 info 元素的引用,以便通过签名值进行保护。默认值为 true。只有 KeyInfo 被 KeyAccessor 返回的 keyInfo 并且 KeyInfo="getId ()不是 null 时才相关。

true

布尔值

canonicalizationMethod (sign)

在计算摘要前,用于规范 SignedInfo 元素的规范方法。您可以使用帮助程序方法 XmlSignatureHelper.getCanonicalizationMethod (String algorithm)或 getCanonicalizationMethod (String algorithm, List inclusiveNamespacePrefixes)来创建规范方法。

http://www.w3.org/TR/2001/REC-xml-c14n-20010315

AlgorithmMethod

contentObjectId (sign)

设置内容对象 Id 属性值。默认情况下会生成一个 UUID。如果您设置了 null 值,则会生成一个新的 UUID。仅在信封大小写中使用。

 

字符串

contentReferenceType (sign)

内容引用的类型。默认值为 null。这个值可以被标头 XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE 覆盖。

 

字符串

contentReferenceUri (sign)

要签名的证书的引用 URI。仅在信封大小写中使用。如果引用 URI 包含 ID 属性值,则必须设置资源 schema URI (setSchemaResourceUri (String)),因为 schema 验证器会找出哪些属性是 ID 属性。在信封或分离的情况下将忽略。

 

字符串

digestAlgorithm (sign)

摘要算法 URI。可选参数。此摘要算法用于计算输入消息摘要。如果没有指定此摘要算法,则从签名算法计算摘要算法。示例 :http://www.w3.org/2001/04/xmlenc#sha256

 

字符串

keyAccessor (sign)

对于签名过程,需要一个私钥。您可以指定一个提供此私钥的密钥访问器 bean。密钥访问器 Bean 必须实现 KeyAccessor 接口。软件包 org.apache.camel.component.xmlsecurity.api 包含从 Java 密钥存储读取私钥的默认实现类 DefaultKeyAccessor。

 

KeyAccessor

parentLocalName (sign)

将添加 XML 签名元素的父元素的本地名称。仅与信封 XML 签名相关。或者,您也可以使用 setParentXpath (XPathFilterParameterSpec)。默认值为 null。对于信封和分离的 XML 签名,该值必须是 null。对于 enveloped 签名的参数 setParentXpath (XPathFilterParameterSpec),且不能在同一配置中设置分离签名的参数 setXpathsToIdAttributes (List)。如果在同一配置中指定了 parentXpath 和 parentLocalName 参数,则会抛出异常。

 

字符串

parentNamespace (sign)

将 XML 签名元素添加到的父元素的命名空间。

 

字符串

parentXpath (sign)

将 XPath 设置为在信封案例中找到父节点。您可以通过此方法指定父节点,或使用 setParentLocalName (String)和 setParentNamespace (String)指定父节点的本地名称和命名空间。默认值为 null。对于信封和分离的 XML 签名,该值必须是 null。如果在同一配置中指定了 parentXpath 和 parentLocalName 参数,则会抛出异常。

 

XPathFilterParameter Spec

plainText (sign)

指明消息正文是否包含纯文本。默认值为 false,表示消息正文包含 XML。该值可以被标头 XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT 覆盖。

false

布尔值

plainTextEncoding (sign)

纯文本编码。仅在消息正文是纯文本时相关(请参阅参数 plainText)。默认值为 UTF-8。

UTF-8

字符串

prefixForXmlSignature Namespace (sign)

XML 签名命名空间 http://www.w3.org/2000/09/xmldsig# 的命名空间前缀。默认值为 ds。如果设置了 null 或空值,则不会将前缀用于 XML 签名命名空间。请参阅最佳实践 http://www.w3.org/TR/xmldsig-bestpractices/#signing-xml- 无命名空间

ds

字符串

properties (sign)

要在包含额外属性的 XML 签名中添加额外引用和对象,您可以提供一个实施 XmlSignatureProperties 接口的 bean。

 

XmlSignatureProperties

signatureAlgorithm (sign)

签名算法.默认值为 http://www.w3.org/2000/09/xmldsig#rsa-sha1

http://www.w3.org/2000/09/xmldsig#rsa-sha1

字符串

signatureId (sign)

设置签名 ID。如果没有设置此参数(null 值),则会为签名 ID (默认)生成唯一的 ID。如果此参数设为 (空字符串),则在 signature 元素中不会创建 Id 属性。

 

字符串

transformMethods (sign)

在计算摘要前,转换在消息正文上执行的信息。默认情况下,会添加 C14n,并在信封签名的情况下(请参阅选项 parentLocalName)也添加到列表的位置 0 中。http://www.w3.org/2000/09/xmldsig#enveloped-signature使用 XmlSignatureHelper 中的方法创建转换方法。

 

list

xpathsToIdAttributes (sign)

定义在分离的情况下通过 XPATH 表达式到 ID 属性签名的元素(类型 ID 的属性)。对于通过 XPATH 表达式找到的每个元素,会创建一个分离签名,其引用 URI 包含对应的属性值(由 '#' 前面)。签名是已签名元素的最后一组。具有更深层次级别的元素首先签名。您还可以通过标头 XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES 动态设置 XPATH 列表。用于 enveloped 签名的参数 setParentLocalName (String)或 setParentXpath (XPathFilterParameterSpec),且不能在同一配置中设置分离签名的此参数。

 

list

keySelector (verify)

提供用于验证 XML 签名的密钥。

 

KeySelector

outputNodeSearch (verify)

设置输出节点搜索值,以确定来自 XML 签名文档中的节点,该文档应设置为输出消息正文。值的类取决于输出节点搜索的类型。输出节点搜索被转发到 XmlSignature2Message。

 

字符串

outputNodeSearchType (verify)

决定确定输出节点在输出消息 bodyF 中序列化的搜索类型。请参阅 setOutputNodeSearch (Object)。您可以在 DefaultXmlSignature2Message 中找到的默认搜索类型。

default

字符串

removeSignatureElements (verify)

指明 XML 签名元素(带有本地名称 Signature 和 namesapce http://www.w3.org/2000/09/xmldsig#的元素)是否应从文档设置为输出消息中删除。通常,这只在 XML 签名被信封时才需要。默认值为 boolean#FALSE。此参数转发到 XmlSignature2Message。如果输出节点搜索类型为 DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT.F,则此指示器无效

false

布尔值

secureValidation (verify)

启用安全验证。如果为 true,则启用安全验证。

true

布尔值

validationFailedHandler (verify)

处理不同的验证失败情况。默认实现会针对不同的情况抛出特定的异常(所有例外情况都有软件包名称 org.apache.camel.component.xmlsecurity.api ),是 XmlSignatureInvalidException 的子类。如果签名值验证失败,则会抛出 XmlSignatureInvalidValueException。如果引用验证失败,则会抛出 XmlSignatureInvalidContentHashException。如需更多信息,请参阅 JavaDoc。

 

ValidationFailedHandler

xmlSignature2Message (verify)

Bean,在验证后将 XML 签名映射到 output-message。应该如何通过选项 outputNodeSearchType、outputNodeSearch 和 removeSignatureElements 来配置此映射。默认实现提供了三种可能性,它们与三个输出节点搜索类型 Default、ElementName 和 XPath 相关。默认实现决定了节点,然后被序列化并设置为输出消息的正文(如果搜索类型为 ElementName),则输出节点(本例中为元素)由搜索值中定义的本地名称和命名空间决定(请参阅 outputNodeSearch)。如果搜索类型是 XPath,则输出节点由搜索值中指定的 XPath 决定(在这种情况下,输出节点可以是 Element、TextNode 或 Document 类型)。如果输出节点搜索类型是 Default,则应用以下规则: 在信封 XML 签名案例中(这是 URI= 的引用并转换 http://www.w3.org/2000/09/xmldsig#enveloped-signature),则传入的 XML 文档,但没有 Signature 元素的 Signature 元素被设置为输出消息正文。在非enveloped XML 签名问题单中,消息正文由引用的对象决定;这在 Enveloping XML Signature Case 中的 Output Node Determination in Enveloping XML 签名问题单中进行了更详细的说明。

 

XmlSignature2Message

xmlSignatureChecker (verify)

此接口允许应用程序在执行验证前检查 XML 签名。建议在 http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signed中进行这个步骤

 

XmlSignatureChecker

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.