提问人:jdk 提问时间:11/2/2022 更新时间:11/3/2022 访问量:254
无法解析符号“owasp”,intellij 中的导入错误
Cannot resolve symbol 'owasp', import error in intellij
问:
我想在我的项目中使用 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.*
我想使用 ESAPI 记录器来防止日志语句中可能发生 CRLF 注入。
我当前的项目使用slf4j.Logger
我对这个 ESAPI 和 OWASP 非常陌生,从未使用过它,并且从这里尝试过 https://github.com/ESAPI/esapi-java-legacy/wiki/Using-ESAPI-with-SLF4J#configuring-esapi-to-use-slf4j
请告诉我我是否做错了什么以及如何在项目中正确使用ESAPI。
答:
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
是的,正是由于您对拉罐的建议,我才更深入地发现了实际问题。感谢您的发现。否则,为什么它没有下载是非常令人沮丧的。谢谢!
评论