我将 Servicemix 4.2 用于基于 osgi 的 Web 服务应用程序。我的 Web 服务应用程序使用 Servicemix 提供的 CXF 堆栈公开。
现在我们必须将应用程序与单独开发的身份验证 api 集成。第三方 api 使用 JAAS 作为身份验证的手段。
我在我的应用程序包中嵌入了第三方 jar。我使用 export-package 指令导出了 LoginModule 实现类。
当我尝试使用第三方提供的 jaas 模块时,它给出了错误无法创建登录上下文。没有为 LoginModule 配置登录模块
第三方 jaas 提供者使用系统属性 java.security.auth.login.config 查找 jaas.config 文件的位置 jaas.config 文件内容如下
LoginModule { com.altair.aaservice.windowsauthn.hwec.WindowsAuthentication required; };
谷歌搜索后,我发现 servicemix out of box 为 jaas Apache Felix Karaf :: JAAS Modules (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 not found from bundle [org.apache. cxf.bundle]
由于我的网络服务是基于 CXF 的,它可能正在这个包中查找。
是否有任何方便的方法可以将 servicemix 与自定义 jaas 实现集成。请问有没有。