Правильное расположение ESAPI.properties в веб-проекте

Я добавил в свой проект библиотеку 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?


person Petr Shypila    schedule 24.04.2015    source источник


Ответы (3)


ESAPI.properties должен находиться в папке CLASSPATH в каталоге esapi.

Итак, допустим, у вас есть модуль, который развертывается на войне в любой из двух форм: как банка или взорванный как классы. Просто создайте каталог внутри исходного кода модуля, в котором вы используете сторонний OWASP ESAPI.

С точки зрения eclipse файл просто должен быть в CLASSPATH независимо от того, используете ли вы maven или нет. При использовании maven каталог maven resources преобразуется в каталог eclipse sources плагином m2eclipse.

Пример (с использованием стандартной исходной структуры eclipse):

src
|---com
|   |---module
|   |   |---SomeClass.java
|---esapi
|   |---ESAPI.properties
person Genry    schedule 24.04.2015
comment
Большое спасибо за Вашу помощь. К сожалению, похоже, что эта структура тоже не работает. Я только что попытался создать военный файл таким образом. В файле WAR и в развернутой папке я вижу файлы конфигурации ESAPI в том же каталоге, что и мои классы (/WEB-INF/classes). Корневая папка классов com, как и должно быть. И есть esapi/ESAPI.properties файла. Но я все еще вижу сообщение об ошибке Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties. - person Petr Shypila; 24.04.2015
comment
какую версию esapi вы используете? - person Genry; 24.04.2015
comment
OWASP ESAPI v2.1.0 Он отлично загружает файлы конфигурации из моего домашнего каталога. - person Petr Shypila; 24.04.2015
comment
UPD: Наконец-то заработало. Настроил как вы написали выше. Я действительно не уверен, почему это не работало раньше. Единственное, что я изменил, это исключить тесты из пути сборки. Большое спасибо. - person Petr Shypila; 24.04.2015

Может быть, это поможет. Он описывает порядок поиска, реализованный в ESAPI 2.x для поиска файла ESAPI.properties: http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/reference/DefaultSecurityConfiguration.html

Я думаю, что документация довольно актуальна, но вы можете найти подробности того, как она реализована в методе loadConfiguration() файла DefaultSecurityConfiguration.java, который вы можете найти здесь:

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

Надеюсь, это поможет. -кевин

person Kevin W. Wall    schedule 26.04.2015
comment
Виноват; когда я ответил, эта ссылка все еще была доступна. ESAPI переехал на GitHub. Ознакомьтесь с github.com/ESAPI/esapi-java-legacy/blob/esapi-2.1.0.1/src/main/. - person Kevin W. Wall; 09.07.2017

Просто небольшое обновление, которое может быть актуальным. Похоже, что выпуск 2.1.0.1 случайно нарушил предыдущий порядок поиска 2.x (для поддержки свойств конфигурации XML для ESAPI). Это будет исправлено в версии ESAPI (которая еще не определена). Подробнее см. выпуск 397 ESAPI GitHub.

person Kevin W. Wall    schedule 09.07.2017