2010年9月2日木曜日

groovyとJNDIでinetOrgPersonを検索する

groovyとJNDIでinetOrgPersonを検索するには、以下のコードを実行します。

import javax.naming.*
import javax.naming.directory.*

// LDAPサーバに接続
env = new Hashtable()
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory")
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/ou=system")

env.put(Context.SECURITY_AUTHENTICATION, "simple")
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system")
env.put(Context.SECURITY_CREDENTIALS, "secret")

ctx = new InitialDirContext(env)
// inetOrgPersonを検索
sc = new SearchControls()
sc.setSearchScope(SearchControls.SUBTREE_SCOPE)
results = ctx.search("", "(objectclass=inetOrgPerson)", sc)
while(results.hasMore()){
// 見つかったinetOrgPersonのcommon nameを表示
println "found:" + results.next().attributes.get("cn")
}


動作環境
groovy 1.7.4, JDK6 Update 21, Apache Directory Server 1.5.7

0 件のコメント:

コメントを投稿