使用esapi报错解决方法

使用esapi时报错:

Not found in 'org.owasp.esapi.resources' directory or file not readable: C:\Users\ccg\Desktop\esapi\ESAPI.properties

Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties
Not found in 'user.home' (C:\Users\ccg) directory: C:\Users\ccg\esapi\ESAPI.properties
Loading ESAPI.properties via file I/O failed. Exception was: java.io.FileNotFoundException

Exception in thread "main" org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException SecurityConfiguration class (org.owasp.esapi.reference.DefaultSecurityConfiguration) CTOR threw exception.
Attempting to load ESAPI.properties via the classpath.
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:129)
ESAPI.properties could not be loaded by any means. Fail. Exception was: java.lang.IllegalArgumentException: Failed to load ESAPI.properties as a classloader resource.


解决方法:将esapi.jar添加到项目之后,还要引入ESAPI.properties和validation.properties两个文件。

如何引入这两个文件,第一种方法:建立一个Resources类型的文件夹,把这两个文件直接甩里面即可。

第二种方法:在myeclipse中,选中某个项目,然后在工具栏中选择"Run-->Run Confgurations“,然后在对话框的右边选择"Arguments,然后在VM arguments中输入

 -Dorg.owasp.esapi.resources=C:/Users/ccg/Desktop/esapi/resources(这个是我电脑里面ESAPI.properties和validation.properties文件的路径)。
idea中 选中run-->edit configurations 在configuration选项卡中的vm options中添加  -Dorg.owasp.esapi.resources=C:/Users/ccg/Desktop/esapi/resources(这个是我电脑里面 ESAPI.properties和validation.properties文件的路径 )。


第二种方法的解决思路:单步跟踪源码,发现报错位置在DefaultSecurityConfiguration.class中 
if(customDirectory != null && f.canRead()) {
    this.logSpecial("Found in \'org.owasp.esapi.resources\' directory: " + f.getAbsolutePath());
    return f;
} else {
    this.logSpecial("Not found in \'org.owasp.esapi.resources\' directory or file not readable: " + f.getAbsolutePath());
 其中有:
private static String customDirectory = System.getProperty("org.owasp.esapi.resources");
查资料得:
我的理解是这样的,在myeclipse中,选中某个项目,然后在工具栏中选择"Run-->Run Confgurations“,然后在对话框的右边选择"Arguments,然后在VM arguments中输入-Dproperty.name=value,这样,在你的代码中使用System.getProperty(property.name)即可以获取value的值。
希望可以帮助到你们。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值