Я использую Servicemix 4.2 для своего приложения на основе ОСГИ.
Мое приложение веб-сервиса предоставляется с использованием стека CXF, поставляемого с Servicemix.
Теперь мы должны интегрировать приложение с отдельно разработанным API аутентификации. API стороннего производителя использует JAAS для аутентификации.
Я включил сторонние фляги в свой пакет приложений. Я экспортировал класс реализации LoginModule, используя инструкцию export-package.
Когда я пытался использовать сторонний модуль jaas, он выдавал ошибку
Невозможно создать контекст входа. Нет LoginModules, настроенных для LoginModule
Сторонний поставщик jaas находит местоположение файла jaas.config, используя системное свойство
java.security.auth.login.config
Содержимое файла jaas.config выглядит следующим образом
LoginModule {
com.altair.aaservice.windowsauthn.hwec.WindowsAuthentication требуется;
};
После поиска в Google, я обнаружил, что servicemix из коробки предоставляет два системных пакета для jaas
Apache Felix Karaf :: Модули JAAS (1.4.0)
Apache Felix Karaf :: JAAS Config (1.4.0)
И вам нужно изменить файл etc / users.properties и некоторые другие вещи для реализации jaas. Но так как нам нужно интегрироваться со сторонним провайдером jaas, я не могу смотреть на эти пути. Также большая часть документации, поставляемой с servicemix, настаивает на том, чтобы вы использовали способ servicemix для реализации jaas, поэтому я не добился большого успеха в поиске какого-либо решения.
Я вручную удалил два системных пакета, после чего я получил следующую ошибку
javax.security.auth.login.LoginException: невозможно найти класс LoginModule: com.altair.aaservice.windowsauthn.hwec.WindowsAuthentication не найден в комплекте [org.apache.cxf.bundle]
Так как мой веб-сервис основан на CXF, он может выглядеть в этом комплекте.
Есть ли какой-нибудь удобный способ интеграции servicemix с пользовательской реализацией jaas. Скажите, пожалуйста, есть ли.