InfoDirectory SDK 使用手引書 |
目次
索引
![]() ![]() |
第3章 アプリケーション開発環境(JNDI) | > 3.1 JNDIの位置付けと基本操作概要 | > 3.1.4 基本的な操作の流れ |
JNDIを使ってInfoDirectoryサーバへアクセスするためには、セションをオープンして、初期設定とユーザ認証をする必要があります。InfoDirectoryサーバへアクセスする場合、環境プロパティの設定で設定したHashtable env変数を使用します。
セションをオープンした場合は、LDAPサーバアクセスを終了した後にセションのクローズを行う必要があります。例
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("java.naming.referral","follow");
// アノニマス認証でセションをオープン
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");
ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "admin");
ctx.reconnect(null);
・・・
// セションをクローズ
ctx.close();- 最大同時接続数について
1プロセス内で保持可能なセション数は最大1024です。
1024以上を超過してセションの生成が行われた場合、SSLExceptionが生成されます。
SSLException エラータイプの値(int):99、SSLエラーコード:200002
アプリケーションで以下の対応を行ってください。
- アプリケーション側では利用していないセションはクローズするようコーディングします。
- 使用するセションの使いまわしが可能な場合は生成するセション数を減らす。
複数のセションを必要とする場合を参照してください。- プロセス数を増やしセションを振り分けると、1プロセスあたりのセション数が1024以上を超過しないようアプリケーション側で対処する。
目次
索引
![]() ![]() |