Tomcat 7 - область JAAS не может получить доступ к файлам классов веб-приложений

Последние три недели я ломал голову над этой проблемой и изо всех сил стараюсь объяснить ее в простейшем виде, поскольку у меня нет исходного кода.

  1. Платформа

, Tomcat 7
, Windows Server 2008
, JRE 7

  1. Использование области Tomcat JAAS

Определяется в веб-приложении META-INF/context.xml.

<Context>    
    <Realm className="org.apache.catalina.realm.JAASRealm" appName="ABC" userClassNames="com.abc.xyz" useContextClassLoader="true"/>
  1. Вот сложная часть, так как у меня нет исходного кода.

У меня есть файлы классов WEB-INF/classes/a123 и b123

, Этот класс a123 использует logincontext
, Логинконтекст имеет определенную конфигурацию
, Этот файл конфигурации, как я полагаю, является частью области JAAS, необходимой для доступа к b123.

Проблема. Класс b123 не найден.

Я считаю, что эта проблема заключается в том, что область Tomcat JAAS находится на сервере Tomcat и не может найти b123, так как b123 находится под загрузчиком webappsclassloader.

Итак, как вы можете видеть в моем context.xml, я установил useContextClassLoader="true", который я считаю по умолчанию webappsclassloader.

Я попытался поместить b123 в classpath запуска Tomcat, который работает тогда, но теперь я считаю, что у меня есть 2 копии b123.

, b123 под сервером Tomcat
, b123 под webappsclassloader

Я думаю, что проблема здесь класса выше в иерархии загрузки классов пытается получить доступ к классу веб-приложений в нижней иерархии. Это определенно потерпит неудачу в зависимости от способа делегирования загрузки классов. Таким образом, единственный способ думать, что работает, - это использовать загрузчик класса контекста Thread.

Как вы можете видеть в context.xml, я установил для useContextClassLoader значение "true". Но как мне установить загрузчик класса контекста через конфигурацию Tomcat, так как у меня нет доступа к исходному коду? Я предполагаю, что загрузчик класса контекста должен быть установлен прежде, чем область JAAS использует загрузчик класса контекста.

Любая помощь будет отличной!

0 ответов

Другие вопросы по тегам