Infinispan反序列化白名单:Class '[I'
Infinispan deserialization white list : Class '[I'
我在我的项目中同时使用 Infinispan 和 hibernate,我遇到了一个奇怪的错误日志:
ISPN000936: Class '[I' blocked by deserialization white list. Adjust the configuration serialization white list regular expression to include this class
我已经遇到了这个问题,但是 class 名称是正常的,所以我可以通过将 class 添加到序列化白名单来解决问题,如下所示:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addClass(MyClass.class.getName());
但有了这个奇怪的 class 名称 ('[I'
),我无法做到这一点。
我可以通过像这样授权序列化白名单中的所有 class 来解决问题:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addRegexp(".*");
但我想以更恰当的方式处理问题。
有人遇到过同样的问题并设法解决了吗?
[I
是 int[]
的内部名称,因此您可以使用以下任一名称:
.addClass("[I")
.addClass(int[].class.getName())
.addClasses(int[].class)
当你有多个时,我会使用最后一个,这是一个可变参数方法,例如
.addClasses(MyClass.class,
FooClass.class,
BarClass.class,
int[].class)
我在我的项目中同时使用 Infinispan 和 hibernate,我遇到了一个奇怪的错误日志:
ISPN000936: Class '[I' blocked by deserialization white list. Adjust the configuration serialization white list regular expression to include this class
我已经遇到了这个问题,但是 class 名称是正常的,所以我可以通过将 class 添加到序列化白名单来解决问题,如下所示:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addClass(MyClass.class.getName());
但有了这个奇怪的 class 名称 ('[I'
),我无法做到这一点。
我可以通过像这样授权序列化白名单中的所有 class 来解决问题:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addRegexp(".*");
但我想以更恰当的方式处理问题。
有人遇到过同样的问题并设法解决了吗?
[I
是 int[]
的内部名称,因此您可以使用以下任一名称:
.addClass("[I")
.addClass(int[].class.getName())
.addClasses(int[].class)
当你有多个时,我会使用最后一个,这是一个可变参数方法,例如
.addClasses(MyClass.class,
FooClass.class,
BarClass.class,
int[].class)