【发布时间】:2014-02-13 23:54:04
【问题描述】:
我编写了一个程序,它读取一个 web 服务,检索用户数据,然后应该将该数据推送到 ActiveDirectory,从而更新用户的标题、地址、电话号码等。
问题是当我使用 Unboundid Connection 类执行搜索时,请求的属性没有返回。以下是搜索代码:
SearchResult result = connection.search( properties.getProperty("ldap.search.baseDN"),
SearchScope.SUB, "(cn=" + userId + ")",
"personalTitle", "department", "company", "manager", "telephoneNumber",
"streetAddress", "I", "st", "postalCode", "c", "pager", "mobile",
"fax", "cn");
以上代码定位到想要的用户,按预期返回了cn属性,但是其他属性都没有返回。如果我使用 JXplorer 使用相同的连接凭据连接到 AD,我可以看到所有需要的属性都存在,但根本没有返回。
我尝试替换 SearchRequest.ALL_OPERATIONAL_ATTRIBUTES、SearchRequest.ALL_USER_ATTRIBUTES 和 SearchRequest.REQUEST_ATTRS_DEFAULT 而不是明确列出字段,但没有成功。
我还查看了从“connection.getSchema()”返回的“Schema”对象,可以看到personalTitle 应该存在:
connection.getSchema().getAttributeType("personalTitle")
以上代码返回:
1.2.840.113556.1.2.615 NAME 'personalTitle' 语法 '1.3.6.1.4.1.1466.115.121.1.15' 单值
所以也许这是一个用户权限问题?有没有人遇到过这种情况并知道如何解决?
谢谢, 迈克
【问题讨论】:
标签: java active-directory ldap unboundid-ldap-sdk