我在项目上同时使用Infinispan和休眠模式,但遇到了奇怪的错误日志:


ISPN000936:类别'[I'被反序列化白名单阻止。调整配置序列化白名单正则表达式以包括此类


我已经遇到了这个问题,但是具有正常的类名,因此可以通过将类添加到序列化白名单中来解决此问题,如下所示:

globalConfigurationBuilder
        .serialization()
        .marshaller(new JavaSerializationMarshaller())
        .whiteList()
        .addClass(MyClass.class.getName());


但是使用这个奇怪的类名('[I'),我无法做到这一点。
我可以通过授权序列化白名单中的所有类来解决该问题,如下所示:

globalConfigurationBuilder
        .serialization()
        .marshaller(new JavaSerializationMarshaller())
        .whiteList()
        .addRegexp(".*");


但我想以更适当的方式解决这个问题。
有人遇到过同样的问题并设法解决了吗?

最佳答案

[Iint[]的内部名称,因此您可以使用以下任意一种:

.addClass​("[I")

.addClass​(int[].class.getName())

.addClasses(int[].class)


当您有多个时,我将使用最后一个,这是一种vararg方法,例如

.addClasses(MyClass.class,
            FooClass.class,
            BarClass.class,
            int[].class)

关于java - Infinispan反序列化白名单:类别[[I],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60437650/

10-10 04:59