ESAPI 2.2.3.1 在使用 httpUtilities

问题描述

我正在使用 ESAPI 2.2.3.1 并尝试运行此代码

ESAPI.httpUtilities().setCurrentHTTP(request,response);
ESAPI.httpUtilities().sendRedirect(appURL);
ESAPI.httpUtilities().clearCurrent();

我更改了 ESAPI.properties 中的 App Name 和 Validator.Redirect。

当我调用代码时,我得到以下异常,我缺少什么才能使其工作?

ESAPI:尝试通过类路径加载 ESAPI.properties。 ESAPI:使用当前线程>上下文类加载器通过“.esapi/”的CLAsspATH成功加载了ESAPI.properties! ESAPI:尝试通过类路径加载validation.properties。 ESAPI:使用当前的>线程上下文类加载器通过“.esapi/”中的CLAsspATH成功加载了validation.properties! >org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException >HTTPUtilities 类 (org.owasp.esapi.reference.DefaultHTTPUtilities) CTOR 抛出异常。

附加信息: 使用 JDK 1.7 和 Tomcat 8.5

解决方法

要确定,我需要在堆栈中的某处查看您的完整异常堆栈跟踪,我们应该看到“Caused by:”指的是实际的罪魁祸首。但是由于您没有显示(如果我的推测不正确,请随意添加),如果我冒险猜测,我的猜测是您正在使用 old 设置 {{1 }} 在您的 ESAPI.properties 文件中。添加对 SLF4J 的支持后,对 ESAPI 记录器包进行了重组(我认为是在 2.2.1.0 中)。旧值将不再有效,因为 ESAPI 中不再存在这些类,并将导致 ESAPI.Logger(或在极少数情况下,ClassNotFoundException)。有关详细信息,请参阅“旧新闻 - 重要日志更改”部分下的 2.2.3.0 发行说明。 (不幸的是,我似乎忘记在 2.2.3.1 发行说明中提及该警告,所以如果这是导致您出现问题的原因,我深表歉意。编写发行说明是一个手动且非常繁琐的过程,因此有时事情会通过裂缝。)