В web.xml
может быть максимум один тег <login-config>
.Это означает, что вы не можете использовать более одной области в одном веб-приложении.Итак, вам нужно более или менее конкретное решение для контейнера.
В Tomcat есть CombinedRealm , который может использовать другие области.
Реализация области, которая содержит однуили больше областей.Проверка подлинности выполняется для каждой области в порядке их настройки.Если какая-либо область аутентифицирует пользователя, тогда аутентификация проходит успешно.При объединении областей имена пользователей должны быть уникальными для всех объединенных областей.
Возможно, это соответствует вашим требованиям.Если нет, и пользователи существуют более чем в одной области (с одним и тем же именем пользователя), вы можете использовать префиксы.Например, установите "domain\myuser"
в качестве имени пользователя.
Если вы используете вложенные JDBCRealm
s, вы можете создать представление базы данных, которое содержит префиксные имена пользователей (просто объедините префикс с именем пользователя) и использовать это представление в качествеuser table.
Другой подход заключается в удалении префикса из пользовательской области и вызове контейнера JDBCRealm
(или его других областей), но он требует некоторого кодирования.В любом случае, это не должно быть слишком сложно, уже существующие области, вероятно, можно использовать с шаблоном проектирования делегатов.