尝试在Java Web应用程序中使用ESAPI验证时,出现下一个异常:
org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException Authenticator class (org.owasp.esapi.reference.FileBasedAuthenticator) CTOR threw exception.
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:129)
at org.owasp.esapi.ESAPI.authenticator(ESAPI.java:92)
at org.owasp.esapi.ESAPI.clearCurrent(ESAPI.java:61)
...
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.owasp.esapi.logging.log4j.Log4JLogFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74)
at org.owasp.esapi.ESAPI.logFactory(ESAPI.java:137)
at org.owasp.esapi.ESAPI.getLogger(ESAPI.java:154)
我们用途:
电子邮件服务器应用程序接口-2.2.3.0.jar
日志4j-1.2-应用程序接口-2.12.4.jar
日志4j-api-2.12.4.jar文件
日志4j-核心-2.12.4.jar
和ESAPI.properties中的此定义:
ESAPI.Logger=org.owasp.esapi.logging.log4j.Log4JLogFactory
其他的定义也不起作用:
# ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory
2条答案
按热度按时间oiopk7p51#
有了这部作品:
0lvr5msh2#
简而言之,JLLMNCHR提供的答案实际上是正确的。
以下是一些更重要的缺失详细信息...对ESAPI.properties文件中ESAPI.Logger属性的完全限定类名的更改以及其他相关更改在www.example.com的ESAPI 2.2.1.0发行说明(首次添加对SLF 4J的支持时)中首次提及https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.2.1.0-release-notes.txt#L128-L155这些更改在www.example.com中首次提及,和ESAPI的pom.xml中提到的ESAPI-Project-Users Google组中也宣布了它。
另外,鉴于您仍在使用Log4J 1 logger,我想提醒您注意这一重要声明。对Log4J 1的支持(除非您想通过SLF 4J桥使用它)将消失,可能在下一个版本中,我们计划在下个月的某个时候发布。有关详细信息,请参阅https://github.com/ESAPI/esapi-java-legacy/discussions/711。