我可以运行没有snakeyaml的Spring Boot 应用程序吗?

wyyhbhjk  于 2023-02-22  发布在  Spring
关注(0)|答案(1)|浏览(371)

我排除了snakeyaml,因为它有漏洞。现在它无法识别application.properties,我的应用程序无法在Intellij IDE中启动,甚至无法通过gradle bootRun的命令行启动。
snakeyaml是专门用来阅读yaml文件的,还是也需要加载application.properties?
编辑1:我排除了build.gradle中所有的snakeyaml依赖项,如下所示:

configurations.all {
    exclude group: 'org.yaml', module: 'snakeyaml'
}

构建在测试用例级别失败,如下所示:

> Task :test

RestApplicationTests > contextLoads() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
        Caused by: java.lang.IllegalStateException at YamlPropertySourceLoader.java:47
        Caused by: java.lang.IllegalStateException at YamlPropertySourceLoader.java:47

当我运行应用程序时,我得到下面的错误:

> Task :app:bootRun FAILED
18:52:47.125 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalStateException: Attempted to load Config resource 'class path resource [application.yml]' via location 'optional:classpath:/' but snakeyaml was not found on the classpath
        at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:47)
        at org.springframework.boot.context.config.StandardConfigDataLoader.load(StandardConfigDataLoader.java:54)
        at org.springframework.boot.context.config.StandardConfigDataLoader.load(StandardConfigDataLoader.java:36)
thigvfpy

thigvfpy1#

你最好的办法是让库的作者来修复这个漏洞。如果做不到,试着自己修复它,构建库并上传到你的组织的repo,然后依赖它。你的错误不是因为缺少库,而是因为缺少类,所以如果你想的话,你可以提供你自己的库,不要做任何事情(假设它们实际上没有被使用),或者如果接口实际上被使用,则自己实现它。
如果你不使用它,你就不会有风险的说法都是虚假的,应该被忽略。这完全是胡说八道,只有一个完全不懂安全的真正的新手才会说这样的错误。忽略它们。你不应该在你的应用中加载有漏洞的库,因为恶意用户可能会在你的应用中执行使用有漏洞的库的代码。

相关问题