Axon 4 XStream配置

时间:2019-03-22 11:25:05

标签: spring-boot axon

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

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

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

为澄清起见,我在说关于如何配置Axon 4使用的XStream。我不确定是否应该在YAML文件或Configuration类之一中完成此操作。我在this answer中详细尝试过的所有信息都不会影响XStream配置,并且仍然会收到相同的警告。

更新: 根据以下答案,这个问题似乎有两个方面。多亏了以下答案,我得以按如下方式(根据在this answer上发布的信息)进行此工作:

    //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 Boot配置。

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

2 个答案:

答案 0 :(得分:3)

这不是Axon特有的,请检查以下问题以获取背景和解决方案:Security framework of XStream not initialized, XStream is probably vulnerable

答案 1 :(得分:2)

Jan Galinski是对的,因为这不是每个说的轴突特定问题。更XStream包中的转变。无论如何,Jan分享的链接非常有价值。

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

当您也使用Spring Boot时,只需具有这样的bean创建功能就足够了:

XStreamSerializer

希望这会有所帮助!