JClientログイン・ダイアログについて

JClientプロジェクトには、アプリケーションの実行に際してユーザー名とパスワードの入力を求める、カスタマイズ可能なログイン・ダイアログを追加できます。ログイン・ダイアログ・クラスは、JClientアプリケーションを実行するフレームの作成時にJClientプロジェクトに追加します。JClientの次の2つのウィザードを使用すると、適切なJClientブートストラップ・コードが指定されたJFrameを作成できます。

これらのJClientウィザードのどちらかを「ログイン・ダイアログの生成」オプションを選択して実行すると、JDeveloperでは次の処理が実行されます。

作成されるログイン・ダイアログ(JCLoginDialog.java)はインタフェースのメソッドを実装するもので、このコードを基に変更を加えることができます。JCLoginDialog.javaファイルを使用すると、次のようなログイン・ダイアログの要素をカスタマイズできます。

ログイン・ダイアログを作成しない場合のJClientの動作

どちらかのJClientウィザードを実行して、JClientプロジェクトにログイン・ダイアログを作成せずにJClientフレームを作成した場合でも、次のどちらかの方法でアプリケーションを実行できます。

パスワードをデプロイせずにJDeveloperでアプリケーションを実行すると、JDeveloperではデフォルトのログイン・ダイアログ(JUEnvInfoProvider)を使用してパスワードが取得されます。独自に作成するログイン・ダイアログと違って、JDeveloperが提供するデフォルトのログイン・ダイアログはカスタマイズすることはできません。アプリケーション・ブートストラップ・コード内のアプリケーション・オブジェクト・コンストラクタは、次のようにJUEnvInfoProviderのインスタンスを作成します。

JUApplication app = JUMetaObjectManager.createApplicationObject( "Project3.MypackageModule", null, new JUEnvInfoProvider());

JCLoginDialogコードのカスタマイズについて

JCLoginDialog.javaファイルは、EnvInfoProviderインタフェースの必要なメソッドを実装する初期コードを変更する場合に、JClientプロジェクトに作成します。このインタフェースは、ビジネス・コンポーネントの接続方法に、実行時にログイン・パラメータを変更するためのフックを提供するために使用されます。

EnvInfoProviderインタフェースでは、次のメソッドの実装が必要です。

public void modifyInitialContext(Object initialContext)

このメソッドは、アプリケーションがアプリケーション・モジュール・プール接続を作成または検索する前にコールされます。このメソッドは、ビジネス・コンポーネントへの接続を定義する、すべての構成パラメータが設定されたハッシュテーブルを渡します。実行時にアプリケーション・モジュール・プール接続パラメータを変更するには、このメソッドを使用します。

public Object getInfo(String info, Object connEnvironment)

このメソッドはデータベースへの接続の前にコールされます。このメソッドにより、すべての接続パラメータが設定されたハッシュテーブルを更新し、返すことができます。

Public int getNumOfRetries()

このメソッドは、接続に失敗した後でビジネス・コンポーネントが何回接続を試みるかを決定します。再試行のたびに、EnvInfoProviderから接続情報が取得されます。

独自の接続方法を提供するには、次のコードを

JUApplication app = JUMetaObjectManager.createApplicationObject("Project3.MypackageModule", null, new JUEnvInfoProvider());

次のようなコードに置き換えます。



Hashtable mEnv = new Hashtable(2);
mEnv.put(
  PropertyMetadata.ENV_AMPOOL_CONNECTION_STRATEGY_CLASS_NAME.pName "mypackageName.myConnectionStrategy");

JUApplication app = JUMetaObjectManager.createApplicationObject(
          "Project3.MypackageModule",
           mEnv);

接続方法の詳細は、ビジネス・コンポーネントのドキュメントを参照してください。


BC4Jクライアントでのセキュリティについて
JClientおよびBC4Jのセキュリティについて

BC4JクライアントでのOracle9iAS JAASプロバイダの有効化