首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在尝试使用OWASP ESAPI时找不到antisamy-esapi.xml

在尝试使用OWASP ESAPI时找不到antisamy-esapi.xml
EN

Stack Overflow用户
提问于 2012-08-17 22:44:18
回答 1查看 3.3K关注 0票数 5

我一直在尝试评估OWASP库,但一直存在问题,只是让它正确地初始化。我为ESAPI.properties和validation.properties设置了一个资源文件夹,这些文件夹是从类路径加载的,没有问题。但是,antisamy-esapi.xml文件并不是从类路径加载的,我在2010年就发现了一个提到这一点的bug。我所犯的错误是:

试图通过文件I/O将antisamy-esapi.xml加载为资源文件。在“org.owasp.esapi.resources”目录中找不到的文件或不可读的文件:org.owasp.esapi.resources目录/资源目录中没有找到的SystemResource:.esapi\antisamy-esapi.xml不在'user.home‘目录中(C:\Users\mydir)目录:C:\Users\esapi.xml目录中没有找到

我正在使用这个库将应用程序部署到树脂上。我已经尝试过手动将xml文件放置在上面的所有位置,最后唯一起作用的是我的主目录,它在生产部署中不能很好地工作。

我还遵循了在其他地方找到的关于设置-Dorg.owasp.esapi.resources属性的建议。这也不起作用,但更有趣的是,错误并没有改变,这使我认为设置没有被选择的原因。

在我的项目中需要找到这个文件的位置上的任何指针,这样一旦部署到容器中就可以正确地加载它了?

提前谢谢。

更新:

因此,从代码中可以看出,加载ESAPI.properties有专门的功能,这就是为什么该文件能够从部署到容器的标准资源(或任何其他src dir)目录中加载。但是,antisamy-esapi.xml的加载函数只是检查user.home下的一个特定目录,一个已配置的自定义目录,或者通过ClassLoader.getSystemResource()的结果。不知道为什么这些例程是分开的。经过几个小时的混乱之后,我失去了耐心,复制了DefaultSecurityConfiguration.java,并更正了getResourceFile()方法,使其使用与loadConfigurationFromClasspath()相同的查找代码。然后我用这个类调用ESAPI.override(),它现在似乎正常工作了。

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 19:56:43

通过为esapi资源添加以下行,我成功地使其工作:

代码语言:javascript
复制
System.setProperty("org.owasp.esapi.resources", "src/main/resources");

DefaultSecurityConfiguration.java

至少现在我可以使用instance.getValidSafeHTML

然而,当一个部署到web服务器时,它将无法工作。我想修补程序需要加载antisamy-esapi.xml才能从类路径加载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12014097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档