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

JClientプロジェクトには、アプリケーションの実行に際してユーザー名とパスワードの入力を求める、カスタマイズ可能なログイン・ダイアログを追加できます。デフォルトでは、生成されるログイン・ダイアログには、OracleAS JAASサポートが使用され、SECURITY_PRINCIPALおよびSECURITY_CREDENTIALSプロパティが使用されます。生成されるファイルをカスタマイズして、OracleAS JAASサポートのかわりに、DB_USERNAME_PROPERTYおよびDB_PASSWORD_PROPERTYプロパティを必要とするJDBC接続を使用することもできます。ログイン・ダイアログの生成およびカスタマイズの詳細は、関連項目のトピックを参照してください。

注意: 生成されるログイン・ダイアログおよびOracleAS JAASサポートを使用してJClientアプリケーションを実行する場合(デフォルト)、BC4Jコンテキストに対してBC4J jbo.security.enforceを有効にする必要があります。JDBC接続を使用する場合には、このステップは必要ありません。

ログイン・ダイアログ・クラスは、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クライアントでのセキュリティについて
BC4Jクライアント・セキュリティの構成ファイルについて

JAAS用のJClientログイン・ダイアログの生成
JClientログイン・ダイアログのJDBC接続用への変更