Почему настройка Realm требуется в Server.xml, а не в web.xml - PullRequest
3 голосов
/ 19 ноября 2011

Я работаю над приложением Java некоторое время.Я в основном работаю на платформе .NET.Хотя я чувствую, что между этими двумя платформами существует много общих концепций, но есть несколько областей, в которых я нахожу некоторые проблемы, связанные с конфигурацией.

Я работаю над аутентификацией и авторизацией и думал, что получу что-то похожее на членствоAPI .NET в JAVA.Ближайший, который я получил, использовал j_security_check.Я также узнал о JAAS, но думаю, что я не слишком углубляюсь в это.

Я создал таблицы пользователей и ролей в базе данных, и теперь мне нужно где-то указать настройки JDBC Realm.Я использую Tomcat 7.0.В большинстве мест упоминается, что мне нужно указать параметр области в файле server.xml. Но разве это не применимо ко всем веб-приложениям, развернутым на этом сервере, поскольку это станет конфигурацией на уровне сервера?.

На сайте я даже видел, как разработчик упоминает о context.xml, но опять-таки не вижу стандартного документа, в котором упоминается использование этого XML-файла для настройки области JDBC

В .NET, мы всегда устанавливаем настройки членства наУровень web.config, а не Machine.config.

Полностью запутался в этом.Ищем немного света на это.

1 Ответ

3 голосов
/ 22 ноября 2011

Почему настройка Realm требуется в Server.xml, а не в web.xml

Это не так, вы также можете определить это в своем веб-приложении,но только в файле конфигурации для сервлет-контейнера, например /META-INF/context.xml в случае Tomcat.Он не может быть определен в /WEB-INF/web.xml, потому что он специфичен для стандартного Servlet API, а не для реализации servletcontainer.


Но это не относится ко всем веб-приложениям, развернутым на этомсервер, так как он станет конфигурацией на уровне сервера?.

Это правильно.Это не рекомендуется, если у вас нет контроля над сервером или если вы не хотите публиковать область через другие веб-приложения.


На сайте, на котором я даже видел разработчикаупоминание о context.xml, но опять-таки не видно стандартного документа, в котором упоминается об использовании этого XML-файла для настройки области JDBC

Вы можете указать его в /META-INF/context.xml веб-приложения.См. Также Собственная документация Tomcat по элементу <Context> :

Определение контекста

НЕ рекомендуется размещать элементы <Context> напрямуюв файле server.xml. Это происходит потому, что делает изменение конфигурации Context более инвазивным, поскольку основной файл conf/server.xml не может быть перезагружен без перезапуска Tomcat.

Отдельные элементы Contextможет быть явно определено:

  • В отдельном файле в /META-INF/context.xml внутри файлов приложения.Необязательно (на основе атрибута copyXML хоста) его можно скопировать в $CATALINA_BASE/conf/[enginename]/[hostname]/ и переименовать в базовое имя файла приложения плюс расширение «.xml».

  • В отдельных файлах (срасширение ".xml") в каталоге $CATALINA_BASE/conf/[enginename]/[hostname]/.Путь и версия контекста будут получены из базового имени файла (имя файла без расширения .xml).Этот файл всегда будет иметь приоритет над любым файлом context.xml, упакованным в каталог META-INF веб-приложения.

  • Внутри Host элемента в главном conf/server.xml.

(выделение не мое, оно уже как таковое в документации Tomcat)

...