/*
* All Rights Reserved, Copyright (C) FUJITSU LIMITED 2005
*
* エントリの検索を行う
*/
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Properties;
import javax.naming.*;
import javax.naming.directory.*;
import com.sun.jndi.ldap.*;
class Search {
/*
* 環境定義パラメタ
* (実行環境に合わせて以下のパラメタを変更する必要があります。)
*/
public static final String ldapurl = "ldap://hostname:389/";
public static final String binddn = "cn=manager,ou=interstage,o=fujitsu,dc=com";
public static final String password = "secret";
public static final String s_base = "ou=interstage,o=fujitsu,dc=com";
public static final String filter = "cn=User001";
public static void main(String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
/* 環境プロパティの設定 */
env.put(Context.PROVIDER_URL, ldapurl );
env.put(Context.SECURITY_AUTHENTICATION, "simple" );
env.put(Context.SECURITY_PRINCIPAL, binddn );
env.put(Context.SECURITY_CREDENTIALS, password );
try
{
/* リポジトリサーバに接続 */
DirContext ctx = new InitialDirContext(env);
/* 検索範囲の指定 */
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
/*
* 検索開始位置:ou=interstage,o=fujitsu,dc=com、検索フィルタ:cn=User001
* で検索実行
*/
NamingEnumeration results = ctx.search(s_base, filter, constraints);
/* 検索結果の表示 */
while (results != null && results.hasMore()) {
SearchResult si = (SearchResult)results.next();
/* エントリ名の出力 */
System.out.println("name: " + si.getName());
Attributes attrs = si.getAttributes();
if (attrs == null) {
System.out.println("No attributes");
} else {
/* 属性の出力 */
for (NamingEnumeration ae = attrs.getAll();
ae.hasMoreElements(); ) {
Attribute attr = (Attribute)ae.next();
String attrId = attr.getID();
/* 属性値の出力 */
for (Enumeration vals = attr.getAll();
vals.hasMoreElements();
System.out.println(attrId + ": " + vals.nextElement()));
}
}
System.out.println();
}
ctx.close();
}
catch(NamingException ne)
{
System.out.println("Search example failed." + ne);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(e.getLocalizedMessage());
}
}
}
|