Как я могу использовать контейнер J2EE для управления аутентификацией пользователя?

#web-applications #jakarta-ee #containers

#веб-приложения #джакарта-ee #контейнеры

Вопрос:

У меня есть веб-приложение J2EE внутри Tomcat, которое я пишу.

Для входа пользователя в систему я сохранил измененные хэши паролей внутри MySQL. Для входа в систему пользователь вводит пароль, он хэшируется и сравнивается с паролем базы данных. Мне это кажется нормальным, но я слышал, что контейнер (Tomcat) предоставляет некоторые службы аутентификации пользователей.

Я немного изучил это, но все, что я могу найти, это как вручную добавлять учетные записи пользователей в систему. Однако я хотел бы, чтобы пользователи регистрировались, а контейнер обрабатывал динамические изменения.

Есть ли способ динамически изменять список учетных записей пользователей, чтобы позволить людям регистрироваться «на лету» с использованием контейнера J2EE?

Ответ №1:

Если вы используете Tomcat, вас может заинтересовать JDBCRealm, в котором могут быть пользовательские реализации, если вы хотите расширить его. Хотя Tomcat не является полноценным контейнером J2EE, вы можете прочитать обзор определения требований безопасности для веб-приложений для более стандартного подхода, который работает с любым контейнером J2EE.

Комментарии:

1. Что, если бы я использовал Glassfish? Сильно ли это будет отличаться?

2. Для целей аутентификации все вышесказанное применимо к Glassfish. Вероятно, вы найдете руководства по jdbcrealm в Google.