Я пытаюсь настроить два Realms в tomcat, и по какой-то причине это не позволяет мне. Я хотел бы использовать стандартную область UserDatabaseRealm (conf/tomcat-users.xml) для выполнения административных действий (например, развертывания веб-приложений), но мне нужна настраиваемая область для аутентификации для определенного веб-приложения.
Итак, я попытался поместить это в контекст моего веб-приложения:
<Context>
<GlobalNamingResources>
<Resource name="CustomDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="/usr/java/apache-tomcat-6.0.35/conf/tomcat-users.xml"
/>
</GlobalNamingResources>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="CustomDatabase"
/>
</Context>
На самом деле это просто копия того, что находится в server.xml с парой изменений:
Имя изменено на CustomDatabase с UserDatabase.
Путь — это абсолютный путь (то же самое, что я использую для основной области).
Я всегда получаю ту же ошибку:
LifecycleException: No UserDatabase component found under key CustomDatabase
И я не знаю, что это говорит мне. О каком компоненте идет речь?
Наряду с приведенным выше контекстом я пробовал еще пару вещей, но всегда выдает одну и ту же ошибку:
Я пробовал обернуть ресурс тегом GlobalNamingResources и определить, есть ли такая же ошибка.
Я попытался изменить атрибут аутентификации ресурса как на контейнер, так и на приложение и получил ту же ошибку.
Что мне не хватает? Вся помощь от Google в основном состоит в том, что люди портят свою основную область (у меня все в порядке), не пытаясь настроить вторую область.