Как поддерживать базовую аутентификацию пользователей Tomcat?

После некоторого времени поиска в Интернете я не могу найти хороший способ редактировать пользователей из сценария JSP, кроме как открыть tomcat-users.xml и отредактировать его вручную. Это не только уязвимость системы безопасности, потому что я должен предоставить пользователю www разрешения на tomcat-users.xml, но я должен перезапустить Tomcat, чтобы увидеть какой-либо эффект, что делает любые изменения бесполезными.

Поскольку развертывание полностью внутреннее, я не был бы полностью против ручного редактирования tomcat-users.xml через JSP. О редактировании Apache через оболочку .htaccess не может быть и речи (это было мое оригинальное решение), поскольку часть приложения, по-видимому, зависит от входа в Tomcat.

Существуют ли какие-либо лучшие методы, присущие Tomcat для поддержки пользователей? Я использую Томкат 6.0.


person kevin948    schedule 21.10.2011    source источник


Ответы (1)


Вместо этого храните их на сервере реляционной базы данных. Прочтите главу JDBCRealm Tomcat Realm Howto как настроить область на основе базы данных вместо область на основе файлов (которая действительно является областью по умолчанию).

Таким образом, у вас есть полная свобода управления таблицей пользователей в базе данных с помощью JDBC, JPA или Hibernate и т. д. Обратите внимание, что это задание должно быть (косвенно) делается сервлетом, а не JSP.

person BalusC    schedule 21.10.2011
comment
Хм, у меня нет разрешения на установку сервера sql или чего-то еще, но я могу обойтись без sqlite3. Спасибо за предложение, завтра еще разберусь. - person kevin948; 21.10.2011
comment
JavaDB (встроенная в JDK) и H2 также являются хорошими встроенными базами данных. - person BalusC; 21.10.2011
comment
Примечание для всех, кто может это увидеть: не используйте sqlite3 с tomcat, встроенной поддержки нет. Используйте предложения BalusC. - person kevin948; 22.10.2011