OSGI ベースの Web サービス アプリケーションに Servicemix 4.2 を使用しています。私の Web サービス アプリケーションは、Servicemix で提供される CXF スタックを使用して公開されています。
ここで、アプリケーションを個別に開発された認証 API と統合する必要があります。サードパーティの API は、認証手段として JAAS を使用しています。
アプリケーションバンドルにサードパーティの jar を埋め込みました。export-package 命令を使用して LoginModule 実装クラスをエクスポートしました。
サードパーティが提供する jaas モジュールを使用しようとすると、Cannot create Login Context.No LoginModules configured for LoginModule というエラーが発生しました
サードパーティの jaas プロバイダは、システム プロパティ java.security.auth.login.config を使用して jaas.config ファイルの場所を見つけます。 jaas.config ファイルの内容は次のとおりです。
LoginModule { com.altair.aaservice.windowsauthn.hwec.WindowsAuthentication が必要です。};
グーグルで調べたところ、servicemix には jaas Apache Felix Karaf :: JAAS Modules (1.4.0) Apache Felix Karaf :: JAAS Config (1.4.0) の 2 つのシステム バンドルが用意されていることがわかりました。
また、jaas を実装するには、etc/users.properties ファイルなどを変更する必要があります。しかし、サードパーティの jaas プロバイダーと統合する必要があるため、これらの方法を調べることはできません。また、servicemix で提供されるドキュメントのほとんどは、servicemix の方法を使用して jaas を実装することを主張しているため、解決策を見つけることにあまり成功しませんでした。
2 つのシステム バンドルを手動でアンインストールした後、次のエラーが発生しました javax.security.auth.login.LoginException: LoginModule クラスが見つかりません: com.altair.aaservice.windowsauthn.hwec.WindowsAuthentication not found from bundle [org.apache. cxf.bundle]
私の Web サービスは CXF ベースであるため、このバンドルを探している可能性があります。
servicemix をカスタム jaas 実装と統合する便利な方法はありますか。ありましたら教えてください。