Статья:

Cеpвеp Tomcat и pаспознавание пользователей пpи помощи библиотеки JDBCRealm и баз данных MySQL

Конференция: XLIV Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: Технические науки

Выходные данные
Слободецкий А.В., Зальцман Н.М., Журавлев В.С. Cеpвеp Tomcat и pаспознавание пользователей пpи помощи библиотеки JDBCRealm и баз данных MySQL // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XLIV междунар. студ. науч.-практ. конф. № 4(44). URL: https://nauchforum.ru/archive/MNF_tech/4(44).pdf (дата обращения: 25.04.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

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

 

Список литературы:
1. Бен Форта-Освой самостоятельно SQL. 10 минут на урок, 3-е издание, Вильямс, 2005.
2. Герберт Шилдт. Java 8. Полное руководство. Девятое издание. Издательский дом «Вильямс», Москва, Санкт-Петербург, Киев, 2015.
3. Контейнер сервлетов с открытым исходным кодом Apache Tomcat – [Электронный ресурс] – http://tomcat.apache.org / (Дата обращения 14.03.2017).