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

时间:2015-04-24 08:19:47

标签: java eclipse esapi

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

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

进入这些地点:

$CATALINA_HOME/webapps/<MY_PROJECT>/
$CATALINA_HOME/webapps/<MY_PROJECT>/WEB-INF
$CATALINA_HOME/webapps/<MY_PROJECT>/WEB-INF/classes
$CATALINA_HOME/webapps/<MY_PROJECT>/META-INF

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

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

3 个答案:

答案 0 :(得分:5)

ESAPI.properties文件应位于CLASSPATH目录下的esapi

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

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

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

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

答案 1 :(得分:2)

也许这会有所帮助。它描述了在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 :(得分:0)

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