我在项目中添加了一个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后,该文件最终应该在哪里?
答案 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()方法中找到它的实现细节,你可以在这里找到:
希望有所帮助。 -kevin
答案 2 :(得分:0)
只是一个可能相关的小更新。看起来2.1.0.1版本意外地破坏了之前的2.x搜索顺序(为了支持ESAPI的XML配置属性)。这将在(尚未确定的)ESAPI点版本中修复。有关详细信息,请参阅ESAPI GitHub issue 397。