There was security scan run on our Project Code and Vulnerability was reported for ESAPI 2.1.0.0 jar. Hence we had to change our code to use ESAPI 2.3.0.0 with zero vulnerabilities. We changed and the code passed the security scan. However, the code is throwing error in Runtime with
" java.lang.NoClassDefFoundError: org.owasp.esapi.reference.DefaultValidator(初始化失败)" .
调试日志如下:
文本:字符:. lang。NoClassDefFoundError: org.owasp.esapi.reference.DefaultValidator(初始化失败)RecoverableException文件:特点:C: ci product-build PluginInterface WMB src DataFlowEngine jlinklib com_ibm_broker_plugin_CMbService.cpp线:整数:1686功能:角色:ImbJavaExceptionUtils:: throwableToNativeException严重性:整数:3数量:整数:4395Text:CHARACTER:插件方法中未处理的异常插入类型:整数:5文本:字符:java.lang.NoClassDefFoundError插入类型:整数:5文本:字符:java.lang.J9VMInternals插入类型:整数:5文本:字符:initializationAlreadyFailed插入类型:整数:5…
这里使用的产品是IBM ACE v12.0.0.3, Java运行时版本是8。
请帮助理解和解决以上错误。我们检查了论坛和你写的一些答案,并尝试了它们。但他们似乎与问题无关,因此在电子邮件中提出了这个问题。
一些试验已经完成,但仍然没有成功:•在运行时设置Classpath变量为正确的jar文件。•使用相关Jar文件重新构建。•将"DefaultValidator"导入到代码中。
这很难确定,因为您没有提供完整的异常堆栈跟踪,但通常这个问题几乎总是由ESAPI Logger的错误配置引起的,特别是ESAPI.properties中的ESAPI.Logger
属性。文件。
我建议你参考GitHub的讨论项目:https://github.com/ESAPI/esapi-java-legacy/discussions/696或者发布说明中的这一部分:https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.2.1.1-release-notes.txt L39-L78
我对此负有部分责任,因为在我最终在2.3.0.0版本中删除它们之前,我们或多或少地在ESAPI版本2.2.1.0(于2020-07-12发布,并且是该更改首次发布的时候),2.2.1.1,2.2.2.0,2.2.3.0和2.2.3.1(发布于20121-05-07)的发布说明中注意到了这一点。我删除了它们,因为从Stack Overflow上的其他帖子,到我们的GitHub问题,以及给项目负责人的私人邮件中可以明显看出,开发人员从来没有读过这些说明。所以,我觉得他们只是占用了无用的空间。这是我把它移到讨论页的原因之一,但我们可能需要把它放在ESAPI FAQ中,然后让人们查看FAQ。
无论如何,看看这些链接,看看它们是否能解决你的问题。如果没有,请跟进您发给我的邮件,然后我将在那里回复您。
HTH,
凯文