Средство проверки подлинности для веб-приложений под Tomcat 6 - PullRequest
0 голосов
/ 18 сентября 2010

С вашей помощью я успешно решил вопрос, который я задал здесь .Я разработал собственный аутентификатор Tomcat для веб-приложения, и в настоящее время аутентификатор и его файл конфигурации находятся в каталоге %CATALINA_HOME%\lib\.К сожалению, файл конфигурации средства проверки подлинности является почти дубликатом файла конфигурации веб-приложения (расположенного в %CATALINA_HOME%\webapps\myapp), для которого был разработан средство проверки подлинности, и файлы конфигурации, очевидно, имеют одинаковые параметры подключения к БД.Это неудобно, потому что лучше использовать общий файл конфигурации.

Я думаю, что есть два способа решения проблемы:

  1. Найти каталог webapps для myapp присутствовать каким-либо образом при запуске Tomcat, а затем прочитать файл конфигурации приложения (исходя из текущей ситуации, и myapp\WEB-INF\web.xml настроен правильно).Конечно, к сожалению, для этого требуется перезапуск Tomcat.
  2. Возможно, существует способ поместить средство проверки подлинности формы в соответствующий каталог веб-приложения, чтобы иметь возможность непосредственного чтения общего файла конфигурации.Возможно, это может исключить перезапуск Tomcat и позволить простое повторное развертывание.

Я хотел бы предпочесть второе решение, если это возможно, но я не уверен.Какой путь лучше, если они оба существуют?Или есть какое-то иное и даже лучшее решение не помещать специфичный для веб-приложения аутентификатор в %CATALINA_HOME\lib%?

Заранее спасибо и извините за мой английский.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2010

Ах, все намного проще! Основная идея заключается в том, чтобы просто получить строку подключения через объект (JDBCRealm) context.getRealm() в authenticate(...). Этого достаточно, чтобы решить мою проблему.

0 голосов
/ 19 сентября 2010

У вас есть случай дублирования кода.

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

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

...