尝试在Java应用程序中使用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)我们使用:
esapi-2.2.3.0.jar
log4j-1.2-api-2.12.4.jar
log4j-api-2.12.4.jar
log4j-core-2.12.4.jar
和ESAPI.properties中的这个定义
ESAPI.Logger=org.owasp.esapi.logging.log4j.Log4JLogFactory其他定义也不起作用:
#ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory发布于 2022-06-22 11:27:41
在此工作中:
ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory发布于 2022-06-22 23:08:19
简单来说,JLLMNCHR所提供的答案其实是正确的。
下面是一些更重要的细节..。对ESAPI.properties文件中的ESAPI.Logger属性的完全限定类名的更改和其他相关更改首先在ESAPI 2.2.1.0发行说明(首次添加对SLF4J的支持时)在首次提到这些更改的https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.2.1.0-release-notes.txt#L128-L155中提到,随后在通过ESAPI 2.3.0.0发布的几个连续发行说明中提到。在我们的自述文件以及ESAPI的pom.xml中提到的ESAPI-项目用户Google组上也宣布了这一点。
此外,鉴于您仍在使用Log4J 1记录器,我想提请您注意有关这方面的重要声明。对Log4J 1的支持(除非您想通过SLF4J桥使用它)将会消失,很可能在下一个版本中,我们计划下个月的某个时候。有关详细信息,请参阅https://github.com/ESAPI/esapi-java-legacy/discussions/711。
https://stackoverflow.com/questions/72712653
复制相似问题