Потребителско удостоверяване на 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, т.е. с наклонена черта /