Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java web项目下ESAPI.properties的正确位置_Java_Eclipse_Esapi - Fatal编程技术网

Java web项目下ESAPI.properties的正确位置

Java web项目下ESAPI.properties的正确位置,java,eclipse,esapi,Java,Eclipse,Esapi,我在项目中添加了一个OWASP ESAPI库。目前我遇到了一个问题,在哪里找到ESAPI.properties文件。这个项目以后应该部署在我没有访问权限的几个服务器上。所以在我看来,没有办法定制org.owasp.esapi.resources变量,我不能将它放在用户主目录下。所以我唯一能放这个文件的地方是SystemResource目录/resourceDirectory,但它在哪里?我已尝试放置这些文件: .esapi/ESAPI.properties esapi/ESAPI.propert

我在项目中添加了一个OWASP ESAPI库。目前我遇到了一个问题,在哪里找到
ESAPI.properties
文件。这个项目以后应该部署在我没有访问权限的几个服务器上。所以在我看来,没有办法定制
org.owasp.esapi.resources
变量,我不能将它放在用户主目录下。所以我唯一能放这个文件的地方是
SystemResource目录/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
$CATALINA_主页/webapps//
$CATALINA_HOME/webapps//WEB-INF
$CATALINA_HOME/webapps//WEB-INF/classes
$CATALINA_HOME/webapps//META-INF
但在所有这些地方,我都犯了一个错误:
未在SystemResource目录/resourceDirectory中找到:.esapi\esapi.properties


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

ESAPI。属性
文件应该位于
ESAPI
目录下的
类路径中

假设您有一个模块,它以两种形式中的任何一种部署到war中:作为一个jar,或者作为类进行分解。 只需在使用OWASP ESAPI第三方的模块源代码中创建一个目录

从eclipse的角度来看,不管您是否使用maven,该文件只需要位于
类路径中。使用maven时,maven
resources
目录通过
m2eclipse
插件转换为eclipse
sources
目录

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


也许这会有帮助。它描述了在ESAPI 2.x中实现的查找ESAPI.properties文件的搜索顺序:

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


希望有帮助-凯文

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

非常感谢您的帮助。不幸的是,这种结构似乎不太起作用。我只是想用这种方式建立一个war文件。在WAR文件和deployed文件夹中,我看到ESAPI配置文件与我的类位于同一目录(/WEB-INF/classes)。Classes根文件夹是
com
,它应该是这样的。还有
esapi/esapi.properties
文件。但是我仍然在SystemResource目录/resourceDirectory中看到
未找到:.esapi\esapi.properties
错误消息。您使用哪个版本的esapi?OWASP esapi v2.1.0它可以从我的主目录加载配置文件。UPD:终于可以工作了。按照上面所写的配置。我真的不知道为什么它以前不起作用。我唯一改变的是从构建路径中排除测试。非常感谢你。我的坏;当我回答时,这个链接仍然可用。ESAPI搬到了GitHub。退房吧。
src
|---com
|   |---module
|   |   |---SomeClass.java
|---esapi
|   |---ESAPI.properties