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のインスタンスを作成します。
JUApplication app = JUMetaObjectManager.createApplicationObject("Project2.Mypackage1Module", null, new JCLoginDialog());
JCLoginDialog.java
ファイルをJClientプロジェクトに追加します。これは、EnvInfoProvider
インタフェースを実装して実行時のログイン・ダイアログを表示します。ただし、同じ名前のJCLoginDialog.java
ファイルがすでにある場合、上書きはされません。作成されるログイン・ダイアログ(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接続用への変更