Потребителско удостоверяване на Tomcat с JDBCRealm и MySQL или Oracle, RTFM Linux, DevOps и
Apache Tomcat има множество механизми за удостоверяване. По подразбиране се използва UserDatabaseRealm, който използва данни от файла ./conf/tomcat-users.xml .
Задачата е да се преконфигурира Tomcat да използваме механизма JDBCRealm с помощта на база данни (MySQL, Oracle).
Да вземем например следните потребителски настройки и неговата роля (група):
Настройките за ограничаване на достъпа са посочени във файла web.xml и са описани както следва:
Тук ограничаваме достъпа до файла index.jsp в основната директория на сървъра, за удостоверяване ще използваме BASIC (вход/парола, които ще трябва да бъдат въведени в прозореца на браузъра), достъпът до файла ще бъде разрешен на членовете на групата на indexadmin .
Изтегляне на драйвера JDBCR .
За MySQL:
За Oracle:
В този случай използвахме ojdbc6.jar и mysql-connector-java-5.1.27 .
Копирайте архива с драйвера (само файл * .jar) в директорията ./server/lib/:
Създаваме база данни за MySQL:
Създаваме таблица, в която ще съхраняваме потребителски имена/пароли:
Oracle:
Oracle:
Създаваме потребител, при който Tomcat ще работи с основата, привилегиите SELECT са достатъчни:
Таблиците изглеждат така:
MySQL:
Oracle:
Добавете потребителя на indexadmin с парола за парола:
MySQL:
Нека добавим ролята на indexadmin и я присвоим на потребителя на indexadmin:
Oracle:
MySQL:
Oracle:
За Oracle не забравяйте да изпълните ангажимента:
Пристъпваме към настройка на себе си Tomcat.
Коментирайки частта, която описва царството по подразбиране, изобщо няма да го използваме:
За Oracle - почти същото:
Запазете файла и рестартирайте Tomcat. В процеси MySQL трябва да се появи подкана:
В случай на проблеми вижте файла ./logs/catalina.out .
Най-често срещаните са, ако параметрите за свързване към сървъра на базата данни са неправилно посочени или базата данни/таблицата е неправилна:
// невалидно потребителско име/парола за достъп до базата данни
// грешка в описанието, файлът трябва да бъде посочен от root webapps/ROOT, т.е. с наклонена черта /