Я написал программу, которая считывает веб-сервис, извлекает данные пользователя, а затем должна передавать эти данные в 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 возвращается, как и ожидалось, но все остальные атрибуты не возвращаются. Если я подключаюсь к AD с помощью JXplorer, используя те же учетные данные для подключения, я вижу, что все нужные атрибуты существуют, но они просто не возвращаются.
Я попытался заменить SearchRequest.ALL_OPERATIONAL_ATTRIBUTES, SearchRequest.ALL_USER_ATTRIBUTES и SearchRequest.REQUEST_ATTRS_DEFAULT вместо явного перечисления полей, но безуспешно.
Я также просмотрел объект «Схема», возвращаемый из «connection.getSchema()», и вижу, что personalTitle должен существовать:
connection.getSchema().getAttributeType("personalTitle")
Приведенный выше код возвращает:
1.2.840.113556.1.2.615 ИМЯ 'personalTitle' СИНТАКСИС '1.3.6.1.4.1.1466.115.121.1.15' ОДНОЗНАЧНОЕ
Так может быть, это проблема с правами пользователя? Кто-нибудь сталкивался с этим и знает, как это решить?
Спасибо, Майк