OWASP.ESAPI库启动失败报配置错误,是否有对应Spring Boot启动器?
异常抛出原因
从错误堆栈可以明确定位到根因:你在ESAPI.properties中指定使用org.owasp.esapi.logging.slf4j.Slf4JLogFactory作为日志实现,但你的配置文件中缺少该日志工厂依赖的必填配置项Logger.LogEncodingRequired,导致日志工厂初始化失败,进而连锁触发DefaultEncoder构造方法抛出异常,最终出现你遇到的报错。
遗漏的必要配置步骤
你当前的ESAPI.properties配置内容不全,ESAPI运行依赖多个必填配置项,除了你已经添加的内容外,还需要补充以下配置:
# 日志相关必填配置 Logger.LogEncodingRequired=false Logger.LogApplicationName=true Logger.LogServerIP=true Logger.LogFileName=ESAPI.log Logger.MaxLogFileSize=10000000 # 若要实现SQL编码功能,需根据你使用的数据库类型将对应SQL编码Codec添加到默认编码列表 # 以MySQL为例: Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec,MySQLCodec # 若使用Oracle则替换为OracleCodec # 基础必填配置项 ESAPI.SecurityConfiguration=org.owasp.esapi.reference.DefaultSecurityConfiguration Validator.ConfigurationFile=validation.properties
除此之外你还需要将ESAPI官方提供的validation.properties配置文件放到项目的resources目录下,否则后续运行还会触发配置缺失异常。
另外建议你将ESAPI的版本从2.2.0.0升级到2.5.3.0及以上的稳定版本,该旧版本存在多个已知安全漏洞,不建议在生产环境使用。
适配Spring Boot的启动器说明
OWASP官方目前没有推出官方适配的ESAPI Spring Boot启动器,第三方非官方启动器的安全性、兼容性没有统一保障,不建议在生产环境使用,你按原生配置方式补全所有必填项即可正常在Spring Boot项目中使用ESAPI。
内容的提问来源于stack exchange,提问作者user1053031
相关产品推荐
相关产品推荐

