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()方法中找到它的实现细节,您可以在此处找到:
希望有所帮助。 -kevin
只是一个可能相关的小更新。 看起来2.1.0.1版本意外地破坏了之前的2.x搜索顺序(为了支持ESAPI的XML配置属性)。 这将在(尚未确定的)ESAPI点版本中修复。 有关详细信息,请参阅ESAPI GitHub问题397 。