188.5. 设置 Xstream DataFormat 的类型权限
在 Camel 中,在路由中始终使用自己的处理步骤来过滤并阻止要路由到 XStream 的 unmarhall 步骤的某些 XML 文档。在 Camel 2.16.1, 2.15.5 中,您可以设置 XStream 类型权限 ,以自动允许或拒绝某些类型的实例化。
Camel 使用的默认类型权限设置拒绝除 java.lang 和 java.util 软件包以外的所有类型。此设置可以通过设置 System 属性 org.apache.camel.xstream.permissions 来更改。其值是一个以逗号分隔的权限术语的字符串,每个术语代表被允许或拒绝的类型,具体取决于术语是否以 '' 前缀(note '' may be omitted)或 '-'。
每个术语都可以包含通配符字符 ''。例如,值 "-,java.lang.,java.util." 表示拒绝除 java.lang prerequisites 和 java.util prerequisites 类以外的所有类型。将此值设置为空字符串 "" 会恢复到默认的 XStream 类型权限处理,该处理拒绝某些黑名单类并允许其他内容。
类型权限设置可以通过设置 type permissions 属性在单独的 XStream DataFormat 实例中扩展。
<dataFormats>
<xstream id="xstream-default"
permissions="org.apache.camel.samples.xstream.*"/>
...
<dataFormats>
<xstream id="xstream-default"
permissions="org.apache.camel.samples.xstream.*"/>
...