第 3 章 使用替代和自定义 marshaller 实现
Data Grid 建议您将基于 Protobuf 的 marshalling 与 ProtoStream marshaller 搭配使用,以便您可以利用 Ickle 查询并使用 Data Grid CLI 和控制台。但是,如果需要,您可以使用替代的 marshallers 或自定义 marshaller 实现。
3.1. 允许对 Java 类进行反序列化 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
为了安全起见,Data Grid 不允许反序列化任意 Java 类。如果您使用 JavaSerializationMarshaller 或 GenericJBossMarshaller,您必须将 Java 类添加到反序列化允许列表中。
注意
反序列化允许列表应用到缓存管理器,因此您的 Java 类可以被所有缓存反序列化。
流程
- 将 Java 类添加到 Data Grid 配置或系统属性中的 deserialization allow 列表中。
声明
<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=.*