第3章 代替およびカスタムマーシャラー実装の使用
Data Grid は、ProtoStream マーシャラーで Protobuf ベースのマーシャリングを使用することを推奨します。これにより、Ickle クエリーを使用し、Data Grid CLI およびコンソールを使用できます。ただし、必要な場合は、代替マーシャラーまたはカスタムマーシャラー実装を使用できます。
3.1. Java クラスのデシリアライズの許可
セキュリティー上の理由から、Data Grid は任意の Java クラスのデシリアライズを許可しません。JavaSerializationMarshaller
または GenericJBossMarshaller
を使用する場合は、Java クラスをデシリアライズ許可リストに追加する必要があります。
注記
デシリアライズ許可リストは Cache Manager に適用されるため、Java クラスはすべてのキャッシュによってデシリアライズされます。
手順
- Data Grid 設定またはシステムプロパティーのデシリアライズ許可リストに Java クラスを追加します。
宣言的 (Declarative)
<infinispan> <cache-container> <serialization version="1.0" marshaller="org.infinispan.marshall.TestObjectStreamMarshaller"> <allow-list> <class>org.infinispan.test.data.Person</class> <regex>org.infinispan.test.data.*</regex> </allow-list> </serialization> </cache-container> </infinispan>
システムプロパティー
// Specify a comma-separated list of fully qualified class names -Dinfinispan.deserialization.allowlist.classes=java.time.Instant,com.myclass.Entity // Specify a regular expression to match classes -Dinfinispan.deserialization.allowlist.regexps=.*