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

第7章 アプリケーションの作成(JNDI) > 7.1 JNDIの位置付けと基本操作概要 > 7.1.4 基本的な操作の流れ

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

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

image

DirContext ctx = new InitialDirContext(env);

image

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

 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");
ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, "admin");
ctx.reconnect(null);
・・・

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

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

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