第 3 章 使用替代和自定义 marshaller 实现
Data Grid 建议您将基于 Protobuf 的 marshalling 与 ProtoStream marshaller 一起使用,以便您可以利用 Ickle 查询并使用 Data Grid CLI 和控制台。但是,如果需要,您可以使用替代的 marshallers 或自定义 marshaller 实现。
3.1. 允许反序列化 Java 类
出于安全考虑,Data Grid 不允许反序列化任意 Java 类。如果使用 JavaSerializationMarshaller
或 GenericJBossMarshaller
,您必须将 Java 类添加到反序列化允许列表中。
注意
deserialization allow 列表应用到 Cache Manager,以便所有缓存可以反序列化 Java 类。
流程
- 将 Java 类添加到 Data Grid 配置或系统属性中的反序列化允许列表中。
声明
<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=.*