轴突 4 XStream 配置

Axon 4 XStream configuration

当 运行 我的 Spring 包含 Axon 4 的启动应用程序时,我在输出控制台中看到以下内容:

Security framework of XStream not initialized, XStream is probably vulnerable.

如何保护 Axon 4 中包含的 XStream?

为了澄清,我说的是如何配置 Axon 4 使用的 XStream。我不确定这是否应该在 YAML 文件或配置 类 之一中完成。我尝试过 中详细信息的每个地方都不会影响 XStream 配置,我仍然会收到相同的警告。

更新: 根据以下答案,这个问题似乎有两个方面。多亏了下面的答案,我设法使它按如下方式工作(基于 上发布的信息):

    //AxonConfig.java
    @Bean
    XStream xstream(){
        XStream xstream = new XStream();
        // clear out existing permissions and set own ones
        xstream.addPermission(NoTypePermission.NONE);
        // allow any type from the same package
        xstream.allowTypesByWildcard(new String[] {
                "com.ourpackages.**",
                "org.axonframework.**",
                "java.**",
                "com.thoughtworks.xstream.**"
        });

        return xstream;
    }

    @Bean
    @Primary
    public Serializer serializer(XStream xStream) {
        return XStreamSerializer.builder().xStream(xStream).build();
    }

我不想回答我自己的问题,因为我认为 Jan 得到了正确的答案,结合 Steven 指向 Spring 启动配置。

我确定我需要缩减包范围,并会在适当的时候这样做。感谢 Jan 和 Steven 的帮助。

这不是 Axon 特有的,检查这个问题的背景和解决方案:

Jan Galinski 是正确的,因为这不是 Axon 特有的问题。更重要的是 XStream 包内的转变。无论如何,link Jan 的股票非常有价值。

从那里,您可以创建自己的 XStream 对象,而不是使用 XStreamSerializer 在使用 Axon 时为您创建的对象。然后,您可以将该对象提供给 XStreamSerializerbuilder()

因为您也在使用 Spring Boot,只需像这样创建一个 bean 函数就足够了:

// The XStream should be configured in such a way that a security solution is provided
@Bean
public Serializer serializer(XStream xStream) {
    return XStreamSerializer.builder().xStream(xStream).build();
}

希望对您有所帮助!