空/空属性值

时间:2012-09-11 13:08:17

标签: ldap jndi apacheds

我在LDAP的一个条目中有一些objectClasses和dc和ou属性及其值。 我试着读取ou属性,但我不能用下面的代码得到它。 我可以正确获得直流值。 我知道我必须控制它是否为空,但为什么“ou”可能会在LDAP中出现。

NamingEnumeration answer = ctx.search(searchBaseDn, filter, ctls);
           try
                {   
                    while (answer.hasMore())
                    {
                        SearchResult sr = (SearchResult) answer.next();
                        OrganizationPojo organizationPojo = new OrganizationPojo();
                        organizationPojo.setOrgDc((String)sr.getAttributes().get("dc").get());
                        organizationPojo.setOrgOu((String)sr.getAttributes().get("ou").get());

2 个答案:

答案 0 :(得分:1)

OU上可能无法使用dc值。 同样,DC上可能没有ou值。

-Jim

答案 1 :(得分:0)

ctx = new InitialDirContext(env);
           String[] attrIDs = { "dc", "objectClass","ou" };

           SearchControls ctls = new SearchControls();
           ctls.setReturningAttributes(attrIDs);

           String filter = "(&(dc=*) (objectClass=organizationalUnit) (ou=*))";

           NamingEnumeration answer = ctx.search(dn, filter, ctls);

attrIds必须包含"ou"