0

我在 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());
4

2 回答 2

1

dc 值在 OU 上可能不可用。同样,ou 值可能在 DC 上不可用。

-吉姆

于 2012-09-12T12:49:21.110 回答
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".

于 2012-09-13T11:15:26.610 回答