Web 認証を通じたアクセス保護

JRun バージョン 3.1 の シングル サインオン機能により、Web 認証を通じて認証されたユーザも同じ JRun サーバーでの EJB アクセスに対して認証されます。Web アプリケーションの web.xml ファイルによって、JRun のユーザ情報の取得とユーザ認証の方法を指定します。詳細については、Chapter 39, "Web アプリケーションの認証"と『JRun Version 3.1 機能および移行ガイド』を参照してください。


メモ

このタイプの EJB アクセスはサーブレットと JSP クライアントにのみ有効です。


Web 認証で動作しているサーブレットから EJB および EJB メソッドにアクセスするには、次の手順を実行します。

  1. 空のコンストラクタを使用して InitialContext インスタンスを作成します。
    Context context = new InitialContext();
    
  2. EJB のホーム インターフェイスへの参照を検索します。
    BalanceHome home = 
      (BalanceHome)javax.rmi.PortableRemoteObject.narrow
        (context.lookup("java:comp/env/ejb/sample9b.BalanceHome"),
          BalanceHome.class);
    
  3. EJB のホーム インターフェイスへの参照を取得します。
    Balance balance;
    int accountNumber;
    
    // アカウント番号はフォーム フィールドから入力されます。
    accountNumber = Integer.parseInt(request.getParameter(“acctnum“));
    try {
      balance = (Balance)home.findByPrimaryKey(accountNumber);
    }
    catch(FinderException e) {
    ...
    
  4. 必要に応じて EJB メソッドを呼び出します。
    Integer thisBalance = balance.getBalance();
    

上記は "簡単なアクセス" と同じサーブレット コーディングの手順です。しかし、この例は、Web 認証が有効で、EJB の ejb-jar.xml に固有のセキュリティが指定されていることを想定しています。

EJB サンプル 9b は、Web 認証を通じて保護された環境で EJB にアクセスする方法を示しています。