Tomcat: пользовательский аутентификатор форм в веб-приложении, а не как отдельный модуль JAR. Возможно?

Наше веб-приложение требует индивидуальной аутентификации формы с определенной логикой внутри. Для текущей реализации средства проверки подлинности формы требуется модуль средства проверки подлинности, назовем егоcustom.auth.jarприсутствовать в%CATALINA_HOME%/lib до запуска веб-приложения. Веб-приложение использует этот пользовательский модуль аутентификации, используя следующиеcontext.xml директива:

<Valve className="foo.bar.CustomAuth" characterEncoding="UTF-8"/>

Насколько я понимаю требования Tomcat, этот модуль,custom.auth.jarДолжен присутствовать в Tomcat'slib директории перед запуском веб-приложения, поскольку веб-приложению не требуется код аутентификатора, упакованный с веб-архивом, - оно всегда пытается найти его в%CATALINA_HOMA%/lib, В противном случае веб-приложение просто не может запуститься:

SEVERE: Parse error in context.xml for /webapp
java.lang.ClassNotFoundException: foo.bar.CustomAuth

Из-за особенностей бизнес-логики аутентификации и некоторой защиты мы были вынуждены ввести какое-то управление версиями модуля аутентификации и проверить его версию в приемнике приложения веб-приложения - если веб-приложение обнаруживает несовместимую версию модуля аутентификации (не проверяя JAR-файл, предоставленный в директории библиотеки Tomcat - вместо этого мы используем отражение) - он просто отказывается сообщать об ошибке совместимости между веб-приложением, которое пытаются запустить, и модулем аутентификации. Опятьсуществующий модуль аутентификатора должен быть указан вcontext.xml.

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

У меня вопрос: можно ли упаковать кастомFormAuthenticator непосредственно в веб-приложении, не требуя этой единственной версииFormAuthenticator быть загруженным до запуска веб-приложения? Это позволило бы запустить столько версий веб-приложения, сколько мы хотим, и не трогать%CATALINA_HOME%/lib вообще.

Другими словами: как я могу заставить Tomcat извлекать пользовательский модуль аутентификации из веб-приложения, а не из каталога его домашней библиотеки? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос