187.5. 设置 Xstream DataFormat 的类型权限

在 Camel 中,路由中始终可以使用自己的处理步骤,并阻止要路由到 XStream 的 unmarhall 步骤的特定 XML 文档。从 Camel 2.16.1, 2.15.5,您可以设置 XStream 的类型权限 ,以自动允许或拒绝某些类型的实例化。

Camel 使用的默认类型权限设置拒绝除 java.lang 和 java.util 包之外的所有类型。可以通过设置系统属性 org.apache.camel.xstream.permissions 来更改此设置。其值是一个以逗号分隔的权限术语的字符串,它们分别代表要允许或拒绝的类型,具体取决于术语是前缀的 ''(注 '' 可能被省略)或使用 '-'。

每个术语都可以包含一个通配符字符 ''。例如,值 "-,java.lang.,java.util." 表示拒绝除 java.lang.* 和 java.util.* 类以外的所有类型。将这个值设置为空字符串""恢复到默认的 XStream 的类型权限处理,该处理拒绝某些列入黑名单的类并允许其他人。

type permissions 设置可以通过设置其 type permissions 属性的独立 XStream DataFormat 实例进行扩展。

    <dataFormats>
        <xstream id="xstream-default"
                 permissions="org.apache.camel.samples.xstream.*"/>
        ...