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

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


Насколько я понимаю требования 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 's каталог библиотеки - вместо этого мы используем отражение) - он просто отказывается сообщать об ошибке совместимости между веб-приложением, которое пытаются запустить, и модулем аутентификации. Опятьсуществующий модуль аутентификатора должен быть указан в.context.xml

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

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

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

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

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