无法解析符号“owasp”,intellij 中的导入错误

Cannot resolve symbol 'owasp', import error in intellij

提问人:jdk 提问时间:11/2/2022 更新时间:11/3/2022 访问量:254

问:

我想在我的项目中使用 ESAPI,并在pom.xml

具有依赖关系的 pom.xml:

            <dependency>
                <groupId>org.owasp.encoder</groupId>
                <artifactId>encoder</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.owasp.esapi</groupId>
                <artifactId>esapi</artifactId>
                <version>2.5.0.0</version>
            </dependency>

但是当我导入 intellij 时,给我警告,如图所示。org.owasp.esapi.*enter image description here

我想使用 ESAPI 记录器来防止日志语句中可能发生 CRLF 注入。 我当前的项目使用slf4j.Logger

我对这个 ESAPI 和 OWASP 非常陌生,从未使用过它,并且从这里尝试过 https://github.com/ESAPI/esapi-java-legacy/wiki/Using-ESAPI-with-SLF4J#configuring-esapi-to-use-slf4j

请告诉我我是否做错了什么以及如何在项目中正确使用ESAPI。

owasp esapi crlf-vulnerability

评论


答:

1赞 Kevin W. Wall 11/3/2022 #1

嗯。您在 IntelliJ 中使用什么 JDK?从 2.4.0.0 开始,需要 Java 8 或更高版本。这是我唯一能想到的会导致这种行为的事情。否则看起来还不错。您是否检查过 esapi-2.5.0.0.jar 是否被拉下?因为它要么找不到,要么与您的 IntelliJ IDE 正在使用的 Java 版本不兼容。

评论

0赞 jdk 11/3/2022
我正在使用 JDK8,我的 pom.xml 文件在同步时没有显示依赖项错误,我在项目结构中签入了外部库,但它不存在。还检查了 .m2 中的本地存储库也不存在,不确定为什么它没有在本地存储库中下载
0赞 jdk 11/3/2022 #2

好吧,我发现我在标签而不是标签中添加了这个依赖项,这就是为什么它没有从存储库下载的原因。<dependencyManagement><dependencies>

以前:

<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.5.0.0</version>
    </dependency>
  </dependencies>
</dependencyManagement>

修复后:

  <dependencies>
    <dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.5.0.0</version>
    </dependency>
  </dependencies>

有什么区别,请参考这个 dependencyManagement 和 Maven 中的依赖关系的区别<dependencies><dependencyManagement>

评论

1赞 Kevin W. Wall 11/4/2022
啊,很高兴你想通了。根据您最初显示的内容的上下文,这并不明显地出现在 <dependencyManagement> 部分中,但 ESAPI jar 未显示在 $HOME/.m2 下的本地 Maven 缓存中这一事实是一个很好的线索。
0赞 jdk 11/5/2022
是的,正是由于您对拉罐的建议,我才更深入地发现了实际问题。感谢您的发现。否则,为什么它没有下载是非常令人沮丧的。谢谢!