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 の型パーミッション処理に戻ります。

タイプパーミッションの設定は、タイプパーミッションプロパティーを設定することにより、個々の XStream DataFormat インスタンスで拡張できます。

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