HTTP サービス仕様を使用して Web アプリケーションを提供する OSGi ベースのシステムを開発しています。
認証されたユーザー データを安全に保持するための代替手段を調査しています。Java EE での一般的な方法は、ThreadLocal マップに保存された ThreadContext オブジェクトを使用することです。
このアプローチは OSGi コンテナーで安全に使用できますか?
OSGi は、スレッドで何をするかについて完全に議論されているため、一般的に ThreadLocal は期待どおりに機能します。ただし、アプリケーションに複数のスレッドが表示されることも意味することに注意してください。
呼び出しチェーンでデータを共有するための標準化された方法を提供する OSGi Coordinator 仕様を確認することをお勧めします。
OSGi の ThreadLocal に関する Peter の回答は正しいですが、ユーザー認証を使用するためのより簡単なソリューションがあります。
Amdatu Securityを見てください。これは、Cookie に設定できるユーザー トークンの保存を処理する OSGi サービスを提供します。デフォルトの実装では、実際のトークン ストレージに MongoDB を使用しますが、他の実装も簡単にプラグインできます。また、この種のデータをメモリ内に格納することで、水平スケーリングの実装が難しくなることを忘れないでください。