
Серьезно недостаток Java Project для преподавания OWASP Top 10 - 2017 концепций.
DO NOT USE ANY PART OF THIS CODE IN PRODUCTION.
Эти инструкции дадут вам копию проекта и работают на местной машине для разработки и тестирования.
Вам понадобится:
Установите JDK и настройте переменные среды JAVA_HOME и PATH . Некоторые рекомендации представлены в этом посте Stackoverflow.
Откройте командную строку и убедитесь, что все работает гладко:

Разируйте MySQL, и идите в каталог bin . Выполнить следующую команду ( не рекомендуется для производственных сред):
mysqld --initialize-insecure
Эта команда инициализирует каталог данных и создает учетную запись суперпользователя 'root'@'localhost' с пустым паролем.
Чтобы установить службу на машинах Windows, запустите:
mysqld --install
Наконец, чтобы начать сервис, запустите:
sc start mysql
Чтобы проверить, была ли установка успешной, выпустите команду mysql -uroot : 
Тип exit и нажмите Enter , чтобы выйти из консоли MySQL.
Нам нужно создать нашу примерную базу данных и заполнить ее образцами данных. Файл SQL называется testdb.sql. Загрузите его в каталог MySQL bin , а оттуда выполните следующую команду:
mysql -uroot < testdb.sql
Если все идет гладко, вы можете выпустить команды и увидеть результаты, как показано ниже:

Наконец, измените пароль root на 123456 , так как пустые пароли не будут приняты Server Payara (следующий шаг). Обратите внимание, что сам пароль, а также следующий метод изменения пароля, совершенно небезопасны :
mysqladmin --user=root password "123456"
Загрузите и извлеките сервер Payara, а также MySQL Connector/J. Я извлек последний в C:tmpmysql-connector-java-8.0.18.jar .
Убедитесь, что вы следовали инструкциям для установки и настройки JDK-11. Запустить сервер Payara, используя следующую команду:
asadmin start-domain
Далее установите MySQL Connector/J:
asadmin add-library C:tmpmysql-connector-java-8.0.18.jar
Вот снимок того, как все должно выглядеть:

Откройте веб -консоль Payara и перейдите к Resources → JDBC → JDBC Connection Pools . Нажмите на New Buttton.

Для шага 1 заполните информацию точно так:

Для шага 2 прокрутите вниз, пока не увидите Additional Properties :

Вы должны установить следующие свойства (отсортировано в алфавитном порядке):
allowPublicKeyRetrieval - разрешено ли клиенту автоматически запросить открытый ключ с сервера. Установить на true . (Не рекомендуется в производственных средах)DatabaseName - имя базы данных, к которой вы хотите подключиться. В этом случае, testdb .Password : пароль для указанного пользователя. Здесь 123456 .ServerName : местоположение сервера MySQL. В этом случае localhost .sslMode : используется ли SSL для подключения к серверу MySQL. Установите его на DISABLED . (Не рекомендуется в производственных средах)URL и Url : URL JDBC будет использоваться. Здесь установите его на jdbc:mysql://localhost:3306/testdb .User : имя пользователя для подключения к базе данных. Здесь это root . Нажмите кнопку Finish . Нажмите на недавно созданный пул соединений. На вкладке General нажмите кнопку Ping . Если все пойдет правильно, вы должны увидеть следующее:

Точно так же создайте другой пул соединений под названием MySQL_readonly_Pool . Шаг 1 такой же, как и предыдущий пул соединений. Для шага 2 установите Additional Properties следующим образом:
allowPublicKeyRetrieval: true .DatabaseName: testdb .Password: MyVeryLongPassphrase .ServerName: localhost .sslMode: DISABLED .URL: jdbc:mysql://localhost:3306/testdb .Url: jdbc:mysql://localhost:3306/testdb .User: readonly . Нам нужно настроить ресурсы JDBC. Перейдите в Resources → JDBC → JDBC Resources и нажмите New . Заполните форму следующим образом:
JNDI Name: jdbc/MySQL_root_DataSourceConnection Pool: MySQL_root_Pool
Точно так же сделайте это для второго пула соединений:
JNDI Name: jdbc/MySQL_readonly_DataSourceConnection Pool: MySQL_readonly_PoolНаконец, выпустите следующую команду, чтобы остановить сервер Payara.
asadmin stop-domain
Это делается, поскольку IntelliJ Idea автоматически запускает сервер.
Откройте проект в Intellij Idea. Он уведомляет вас, что Web framework is detected :

Нажмите Configure , чтобы открыть окно Setup Frameworks . Затем просто нажмите OK:

Выберите Run → Edit Configurations... . Открытые Templates → GlassFish Server → Local . Нажмите Configure :

Выберите GlassFish Home . Если выбран правильно, IntelliJ автоматически обнаружит GlassFish Version :

Нажмите OK . В раскрывающемся списке Server Domain выберите domain1 .

Нажмите Apply . Теперь у вас есть правильный шаблон стеклянной рыбы, который вы можете использовать в нескольких проектах. Но для каждого проекта вам необходимо настроить «артефакт», чтобы быть разложением. С этой целью нажмите + на верхней левой части и выберите GlassFish Server → Local :

Внизу Intellij предупреждает вас, что No artifacts configured . Просто нажмите на кнопку Fix .

Затем в окне Artifacts нажмите на знак + и выберите Web Application Exploded → From Modules

Выберите единственный доступный модуль, то есть OWASP-JAVA и нажмите OK.

Нажмите OK, чтобы вернуться в Run/Debug Configurations . Внизу вы увидите еще одно предупреждение: Debug settings are invalid or not suitable for local debugging . Нажмите кнопку Fix , и IntelliJ позаботится об этом для вас.

Теперь вы можете запустить проект. IntelliJ автоматически открывает ваш браузер по умолчанию и перемещается по http://localhost:8080/OWASP_Java_war_exploded/ :

Введите следующие учетные данные:
kambiz1Если все работает правильно, вы будете перенаправлены на домашнюю страницу пользователя:

В противном случае, вам может потребоваться посмотреть на бревна стеклянной рыбы, как сообщает IntelliJ, чтобы увидеть, что пошло не так.

Кстати, я использую плагин Grep Console для проще анализа журналов.