运行包含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的协助。
答案 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
希望这会有所帮助!