Interstage Application Server Smart Repository運用ガイド
目次 索引 前ページ次ページ

第6章 アプリケーションの作成(JNDI)> 6.1 JNDIの使用方法> 6.1.2 基本的な操作の流れ

6.1.2.2 セションのオープン/初期設定とユーザ認証

 JNDIを使ってSmart Repositoryサーバへアクセスするためには、セションをオープンして、初期設定とユーザ認証を行う必要があります。このとき、環境プロパティの設定で設定したHashtable env変数を使用します。
 セションをオープンした場合は、Smart Repositoryサーバアクセスを終了した後にセションのクローズを行う必要があります。

DirContext ctx = new InitialDirContext(env);

複数のセションを必要とする場合

 javax.naming.directory.InitialDirContextクラスは、セションのオープンと同時に初期設定/ユーザ認証を行います。したがって、処理中にユーザ認証情報の変更などを行う場合は、新規にセションをオープンする必要があります。この場合、オープンしているセション数だけセションのクローズを行う必要があります。
 また、javax.naming.ldap.InitialLdapContextクラスを利用することによって、セションのオープン中に、ユーザ認証などの変更を行うことができます。指定方法については、以下を参考にしてください。

・・・
Hashtable env = new Hashtable(5, 0.75f);
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://host:389");

// アノニマス(匿名ユーザ)認証でセションをオープン
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "");
env.put(Context.SECURITY_CREDENTIALS, "");
InitialLdapContext ctx = new InitialLdapContext(env,null);
・・・

// 管理者権限で再認証
ctx.addToEnvironment(Context.SECURITY_AUTHENTICATION, "simple");
ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, "cn=admin,ou=interstage,o=fujitsu,dc=com");
ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "admin");
ctx.reconnect(null);
・・・

// セションをクローズ
ctx.close();

最大同時接続数について

 1プロセス内で保持できるセション数は最大1024です。1024を超過してセションを生成しようとした場合、SSLExceptionが生成されます。
 SSLException エラータイプの値(int):99、SSLエラーコード:200002

 アプリケーションで以下の対応をしてください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005