【问题标题】:Cannot make the OWASP.ESAPI library to start up. Configuration issue?无法启动 OWASP.ESAPI 库。配置问题?
【发布时间】:2022-01-12 10:20:55
【问题描述】:

我需要设置这个库来编码 SQL 查询。在我的 Spring Boot 应用程序(第 11 个 Java)中,我向 POM.xml 添加了以下依赖项:

<dependency>
    <groupId>org.owasp.esapi</groupId>
    <artifactId>esapi</artifactId>
    <version>2.2.0.0</version> 
</dependency>

将 ESAPI.properties 文件添加到资源中,其中包含以下内容:

ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
Encoder.AllowMultipleEncoding=false
Encoder.AllowMixedEncoding=false
Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory

在单元测试执行期间,我发现了这个异常:

java.lang.reflect.InvocationTargetException Encoder class (org.owasp.esapi.reference.DefaultEncoder) CTOR threw exception.

顺便说一句,我使用 logback 作为日志记录子系统。

添加堆栈跟踪

"2021-12-07T14:18:54.298+03:00","level":"ERROR","logger_name":"bankclient.controller.GlobalControllerExceptionHandler","application":"BANKCLIENT","app_version":"undefined","thread_name":"main","message":"Undefined request processing error",
"stackTrace":"org.owasp.esapi.errors.ConfigurationException: SecurityConfiguration for Logger.LogEncodingRequired not found in ESAPI.properties
\org.owasp.esapi.reference.DefaultSecurityConfiguration.getBooleanProp(DefaultSecurityConfiguration.java:1354)
    at 
org.owasp.esapi.logging.slf4j.Slf4JLogFactory.<clinit>(Slf4JLogFactory.java:53)
    ... 147 common frames omitted

Wrapped by: java.lang.ExceptionInInitializerError: null
    at 
java.lang.Class.forName0(Class.java)
    at 
java.lang.Class.forName(Class.java:315)
    at  org.owasp.esapi.util.ObjFactory.loadClassByStringName(ObjFactory.java:158)
    at 
org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:81)
    at 
org.owasp.esapi.ESAPI.logFactory(ESAPI.java:137)
    at org.owasp.esapi.ESAPI.getLogger(ESAPI.java:153)
    at org.owasp.esapi.reference.DefaultEncoder.<init>(DefaultEncoder.java:83)
    at org.owasp.esapi.reference.DefaultEncoder.getInstance(DefaultEncoder.java:67)
    ... 
139 common frames omitted

Wrapped by: java.lang.reflect.InvocationTargetException: null
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
    at  jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at  jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:566)
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:86)
    ... 
134 common frames omitted

Wrapped by: org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException Encoder class (org.owasp.esapi.reference.DefaultEncoder) CTOR threw exception.
    at 
org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:129)
    at org.owasp.esapi.ESAPI.encoder(ESAPI.java:99)
    at  bankclient.repository.currency.JdbcCurrencyOperationRepository.findOperationsWithDateAndDocType(JdbcCurrencyOperationRepository.java:220)
    at bankclient.interactors.documents.currency.operations.CurrencyDocumentViewer.execute(CurrencyDocumentViewer.java:25)
    at 

为什么会抛出这个异常?我错过了配置中的一些步骤吗? 有没有。像 esapi 库的 Spring Boot 启动器?

【问题讨论】:

  • 请包含完整的堆栈跟踪。
  • 添加了一个堆栈跟踪,不幸的是它不完整且格式不正确,但我尝试将最重要的条目包含在其中。感谢您的帮助!
  • "stackTrace":"org.owasp.esapi.errors.ConfigurationException: SecurityConfiguration for Logger.LogEncodingRequired not found in ESAPI.properties 好像解释了什么问题。
  • 我将Logger.LogEncodingRequired=false添加到ESAPI.properties,错误消失了。
  • @M.Deinum,好点子!现在一切都很好。非常感谢!

标签: spring-boot sql-injection esapi


【解决方案1】:

问题实际上是显而易见的。

stackTrace":"org.owasp.esapi.errors.ConfigurationException: SecurityConfiguration for Logger.LogEncodingRequired not found in ESAPI.properties

您的ESAPI.properties 文件中缺少一个属性,Logger.LogEncodingRequired 属性丢失。这条消息告诉你的是什么(如果我可以添加的话,非常明确)。

添加

Logger.LogEncodingRequired=false # Or true if you need this

到你的属性,这个错误应该消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2011-10-02
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多