Interstage Application Server Smart Repositoryユーザーズガイド
目次 索引 前ページ次ページ

第3章 アプリケーションの作成(JNDI)> 3.1 JNDIの使用方法> 3.1.2 アプリケーションの処理手順

3.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=manager,ou=interstage,o=fujitsu,dc=com");
ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "secret");
ctx.reconnect(null);
・・・

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

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

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