Web项目下ESAPI.properties的正确位置

我在我的项目中添加了一个OWASP ESAPI库。 目前我遇到了一个问题,在哪里找到ESAPI.properties文件。 此项目稍后应部署在我无法访问的少数服务器上。 所以在我看来,没有办法自定义org.owasp.esapi.resources变量,我不能把它放在用户主目录下。 所以我可以放这个文件的唯一地方是SystemResource Directory/resourceDirectory但它在哪里? 我已经尝试过这些文件了:

 .esapi/ESAPI.properties esapi/ESAPI.properties ESAPI.properties 

进入这些地点:

 $CATALINA_HOME/webapps// $CATALINA_HOME/webapps//WEB-INF $CATALINA_HOME/webapps//WEB-INF/classes $CATALINA_HOME/webapps//META-INF 

但在所有这些地方我收到一个错误: Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties

那么我应该在哪里找到这个文件? 这是一个遗留项目(只是没有Maven的Eclipse项目 ),它的结构非常难看。 没有像/src/main/resources这样的目录在我看来应该找到这个ESAPI.properties文件。 我已经创建了这个目录,但最终这个文件应该在部署到Tomcat的WAR存档之后?

ESAPI.properties文件应驻留在esapi目录下的CLASSPATH

因此,假设你有一个模块,它以2种forms中的任何一种部署到战争中:作为jar,或者作为类爆炸。 只需在使用OWASP ESAPI第三方的模块源中创建一个目录。

从eclipse的角度来看,无论你是否使用maven,文件都需要在CLASSPATH 。 使用maven时,maven resources目录由m2eclipse插件转换为eclipse sources目录。

示例(使用eclipse标准源结构):

 src |---com | |---module | | |---SomeClass.java |---esapi | |---ESAPI.properties 

也许这会有所帮助。 它描述了在ESAPI 2.x中实现的搜索顺序,以查找ESAPI.properties文件: http ://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/reference/DefaultSecurityConfiguration.html

我认为文档是相当的最新版本,但您可以在DefaultSecurityConfiguration.java的loadConfiguration()方法中找到它的实现细节,您可以在此处找到:

https://static.javadoc.io/org.owasp.esapi/esapi/2.0.1/org/owasp/esapi/reference/DefaultSecurityConfiguration.html

希望有所帮助。 -kevin

只是一个可能相关的小更新。 看起来2.1.0.1版本意外地破坏了之前的2.x搜索顺序(为了支持ESAPI的XML配置属性)。 这将在(尚未确定的)ESAPI点版本中修复。 有关详细信息,请参阅ESAPI GitHub问题397 。