また、JRun は EJB のカスタム認証のみをサポートします。既定では、このメカニズムによって、サーバーの user.properties
(統合 J2EE アプリケーション サーバー) または deploy.properties
(スタンドアロン EJB エンジン) ファイルに指定されたユーザ名とパスワードが認証されます。
このメカニズムを拡張して、サイトまたはアプリケーション固有の認証を行うことができます。詳細については、"ロードされたユーザおよびロール"と EJB サンプル 2b を参照してください。
カスタム認証メソッドを使用して認証済みコンテキストを作成するには、クライアントは次のプロパティを持つ Properties
オブジェクトを作成する必要があります。
プロパティ |
値 |
---|---|
Context.INITIAL_CONTEXT_FACTORY |
allaire.ejipt.ContextFactor |
Context.PROVIDER_URL |
ejipt:// targetserver: targetportnumber |
Context.SECURITY_PRINCIPAL |
ユーザ名 |
Context.SECURITY_CREDENTIALS |
パスワード |
次のようなコードを使用して、Properties
オブジェクトをInitialContext
コンストラクタに渡します。
...
Properties properties = new Properties(); properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "allaire.ejipt.ContextFactory"); properties.setProperty(Context.PROVIDER_URL, "ejipt://targetserver:targetportnumber"); properties.setProperty(Context.SECURITY_PRINCIPAL, username); properties.setProperty(Context.SECURITY_CREDENTIALS, password); Context context = new InitialContext(properties);
"Web 認証を通じたアクセス保護"に示すように、クライアントは、ホーム インターフェイスへの参照を検索することによって引き続きリモート インターフェイスへの参照にアクセスし、ビジネス メソッドを呼び出します。
カスタム認証を使用する EJB にサーブレットや JSP がアクセスするときは、次のように、1 つの要求 (要求ログイン) または 1 つのセッション (セッション ログイン) としてログインできます。
doPost
メソッドなど) の場合に存在します。後続の要求には、もう 1 つの InitialContext
と再認証を確立する必要があります。
allaire.jrun.ejbContext
セッション変数にコンテキスト インスタンスを保存します。
... // プロパティ変数内の値については、 // 前述のコード例を参照してください。 Context context = new InitialContext(properties); HttpSession session = request.getSession(true); session.putValue("allaire.jrun.ejbContext", context);
HttpSession session = request.getSession(true); Context context = (Context)request.getSession().getValue("allaire.jrun.ejbContext");
... if (request.getParameter("Logout") != null) { // ログアウト ボタンを押すと、そのセッションが無効になります。 session.invalidate(); ..