Cеpвеp Tomcat и pаспознавание пользователей пpи помощи библиотеки JDBCRealm и баз данных MySQL
Секция: Технические науки
лауреатов
участников
лауреатов


участников



XLIV Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»
Cеpвеp Tomcat и pаспознавание пользователей пpи помощи библиотеки JDBCRealm и баз данных MySQL
В Aрaсhe Tomcat существует довольно немного механизмов аутентификации. UserDatabaseRealm, использующий данные из файла «../conf/tomcat-users.xml.» применяется по дефолту. Основная задача заключается в том, чтобы настроить Tomcat на использование механизма JDBCRealm с применением базы данных MySQL.
В качестве примера применим настройки пользователя и его роли:

Рисунок 1. Настройки пользователя
Ограничения доступа заданы в файле web.xml, и описываются так:

Рисунок 2. Фрагмент файла web.xml
На данном этапе применяется ограничение доступа к файлу index.jsp в корневой директории сервера, а для аутентификации будем использовать BASIC (т.е. логин и пароль нужно будет вводить в окне браузера), доступ к файлу разрешён членам группы indexadmin. Драйвера JDBCR берем с официального сайта MySQL [2, c. 26].
Здесь использовались ojdbc6.jar и mysql-connector-java-5.1.27. Копируем архив с драйвером (только *.jar файл) в каталог ../server/lib/:
![]()
Рисунок 3. Код копирования архива с драйвером
Далее создаём базу данных для MySQL:

Рисунок 4. Создание базы данных
Создаём таблицу для хранения пар логин/пароль пользователей:

Рисунок 5. Создание таблицы для хранения логина и пароля

Рисунок 6. Создание таблицы соответствия логина и роли
Теперь создаём пользователя, под которым начнется работа с базой:

Рисунок 7. Создание главного пользователя
Так выглядит таблица:

Рисунок 8. Внешний вид таблиц ролей и пользователей
Теперь добавим пользователя indexadmin с паролем password:

Рисунок 9. Создание нового пользователя indexadmin
И добавим роль indexadmin, и назначим её пользователю indexadmin:

Рисунок 10. Создание роли пользователя indexadmin

Рисунок 11. Проверка таблиц для пользователя indexadmin
Перейдем к настройке сервера Tomcat. Закомментируем часть, описывающую Realm [1, c. 88]:

Рисунок 12. Исключение ненужной части
Далее, внесем изменения в блок:

Рисунок 13. Настройка Realm для сервера Tomcat
Пояснения:
driverName= – имя драйвера;
userTable= – таблица с логинами/паролями пользователей;
connectionName= – логин пользователя базы данных;
connectionPassword= – пароль;
userNameCol= – колонка с логинами;
userCredCol= – колонка с паролями;
connectionURL= – адрес сервера и база данных;
roleNameCol= – колонка таблицы, содержащая имена ролей.
userRoleTable= – таблица с ролями;
Сохраняем файл, и перезапускаем сервер. В процессах должен появится запрос:

Рисунок 14. Запрос к базе данных
При возникновении каких-либо проблем проверяем файл../logs/catalina.out.
Наиболее частые проблемы:
1) Если неверно указаны параметры подключения к серверу баз данных:

Рисунок 15. Ошибка подключение базы данных к серверу
2) неверный логин/пароль для доступа к базе данных

Рисунок 16. Ошибка задания логина/пароля для базы данных
3) неверный адрес сервера, возможно прослушивается внешний IP сервера, а не localhost/127.0.0.1:

Рисунок 17. Ошибка ввода адреса сервера

