OW ASP ESAPI не может найти мой файл ESAPI.properties, хотя он существует в каталоге - PullRequest
0 голосов
/ 11 апреля 2020

У меня проблемы с настройкой ESAPI, чтобы он работал с моим веб-приложением Spring Boot (проект maven).

Я использую этот URL-адрес для справки: https://web.archive.org/web/20161005210258/http: //code.google .com / p / ow asp -esapi-java / source / browse / trunk / src / main / java / org / owasp / esapi / reference / DefaultSecurityConfiguration. java

И от этот URL Я выбрал эту часть, чтобы поместить ESAPI.properties в указанный каталог c:

Ссылка {@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

}

3 - На моей jsp странице :

<form action="#" method="POST" onsubmit="linkVariabletoDBFields()">

<input type="hidden" name = "nameconf" id="nameconf" value="<%=ESAPI.encoder().encodeForHTMLAttribute(request.getParameter("confname")) %>" />

Проблема:

Когда сервер приложений (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!

Не удается найти файл свойств, хотя файл существует в / data / folder / testApp / Apps / MyApp / ESAPIConf

И когда я получаю доступ к своей странице jsp, я получаю:

Error :  org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException Encoder class (org.owasp.esapi.reference.DefaultEncoder) CTOR threw exception.

Я думаю, потому что ESAPI.properties не был найден.

Пожалуйста, помогите.

...