一般的なケース: EJB (3.1) を介してサービスを公開する単純なアプリケーション - そのほとんどはステートレス セッション Bean (ここでは何も機能しません) と、リモート インターフェイスを介してこれらのサービスを呼び出し、必要な処理を行う SWING ベースのクライアントです。
セキュリティ: この呼び出しのサイクルを認証/承認し、もちろんサービスを保護したいと考えています。明白な答えは、サーバーで JAAS を使用し、基盤となるサーバーで任意のカスタム ワイヤリング セットアップを使用することです。それはまだオプションです
Apache Shiro : 多くの人が Apache Shiro について話していますが、実際には非常に単純な API とメカニズムを備えており、アプリケーション サーバーに依存しない可能性があります。
技術的な質問:
セッション: 私の場合、私は HTTP セッションを持っていません。私が理解していることから、Shiro は少なくとも、渡す必要があるある種の SESSION ID を必要としています。ビジネス API を汚染せずに、サーバーへの RMI/IIOP 呼び出しにユーザー資格情報を注入する良い方法はありますか?
サーバー側の実装: 私が経験したいくつかのリソースについては、Singleton EJB 3.1 Bean から「参照」することで Shiro DefaultSecurityManager を実装できると思います。他のアイデアはありますか?次に、簡単にインターセプターを作成してリモート呼び出しに追加できます。つまり、新しい呼び出しがリモート EJB メソッドを通過するときに、Shiro Interceptor を使用して、ユーザーを検証したり、特定の権限を確認したりできます。
コメント/ヒント/例はありますか?
どうもありがとう