Я использую этот URL-адрес для справки: https://web.archive.org/web/20161005210 ... ation.java
И из этого URL я выбрал эту часть, чтобы поместить ESAPI.properties в конкретный каталог:
Ссылка {@code SecurityConfiguration} управляет всеми настройками, используемыми ESAPI, в одном месте. В этой справочной
* реализации ресурсы могут быть размещены в нескольких местах, поиск которых осуществляется в следующем порядке:
*
* 1) Внутри каталога, заданного вызовом SecurityConfiguration.setResourceDirectory( "C:\temp\resources" ).
*
Итак, для этого вот мой код:
1 – в application.properties:
esapi.path=/data/folder/testApp/Apps/MyApp/ESAPIConf
2 – в StartupApplication.java (класс, который будет выполняться только один раз при запуске моего приложения):
Код: Выделить всё
@Component
public class StartupApplication implements InitializingBean {
@Autowired
private Environment env;
@Override
@Transactional
public void afterPropertiesSet() throws Exception {
new GlobalVars();
GlobalVars.esapiPropertyFilePath = env.getProperty("esapi.path");
// this setResourceDirectory to be executed once
ESAPI.securityConfiguration().setResourceDirectory(GlobalVars.esapiPropertyFilePath);
...etc
}
Код: Выделить всё
Когда сервер приложений (JBOSS EAP 7.2) запускается, а точнее, когда выполняется класс StartupApplication, setResourceDirectory возвращает:
Код: Выделить всё
ESAPI: Reset resource directory to: /data/folder/testApp/Apps/MyApp/ESAPIConf
ESAPI: Attempting to load ESAPI.properties via file I/O.
ESAPI: Attempting to load ESAPI.properties as resource file via file I/O.
ESAPI: Not found in 'org.owasp.esapi.resources' directory or file not readable: /home/linuxuser/ESAPI.properties
ESAPI: Not found in SystemResource Directory/resourceDirectory: /data/folder/testApp/Apps/MyApp/ESAPIConf/ESAPI.properties
ESAPI: Not found in 'user.home' (/home/linuxuser) directory: /home/linuxuser/esapi/ESAPI.properties
ESAPI: Loading ESAPI.properties via file I/O failed. Exception was: java.io.FileNotFoundException
ESAPI: Attempting to load ESAPI.properties via the classpath.
ESAPI: SUCCESSFULLY LOADED ESAPI.properties via the CLASSPATH from '/ (root)' using current thread context class loader!
ESAPI: SecurityConfiguration for Validator.ConfigurationFile.MultiValued not found in ESAPI.properties. Using default: false
ESAPI: Attempting to load validation.properties via file I/O.
ESAPI: Attempting to load validation.properties as resource file via file I/O.
ESAPI: Not found in 'org.owasp.esapi.resources' directory or file not readable: /home/linuxuser/validation.properties
ESAPI: Not found in SystemResource Directory/resourceDirectory: /data/folder/testApp/Apps/MyApp/ESAPIConf/validation.properties
ESAPI: Not found in 'user.home' (/home/linuxuser) directory: /home/linuxuser/esapi/validation.properties
ESAPI: Loading validation.properties via file I/O failed.
ESAPI: Attempting to load validation.properties via the classpath.
ESAPI: SUCCESSFULLY LOADED validation.properties via the CLASSPATH from 'esapi/' using current thread context class loader!
И когда я захожу на свою страницу jsp, я получаю:
Код: Выделить всё
Error : org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException Encoder class (org.owasp.esapi.reference.DefaultEncoder) CTOR threw exception.
Пожалуйста, помогите.
Подробнее здесь: https://stackoverflow.com/questions/611 ... -directory
Мобильная версия