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. Ошибка ввода адреса сервера