Исключение LDAP — неверное значение #0 для синтаксиса

Я новичок в LDAP и Unbound ID SDK для Java, и у меня возникла проблема с добавлением ролей пользователей из моего приложения на мой сервер LDAP (роли сгруппированы в ou=roles,dc=test,dc=com и как часть ou =поддерево ролей, каждая роль должна быть записью типа groupOfUniqueMembers).

Однако я столкнулся со следующей проблемой:

ОШИБКА ldap.service.LDAPService - LDAPException(resultCode=21 (неверный синтаксис атрибута), errorMessage='uniqueMember: значение #0 недопустимо для синтаксиса', DiagnosticMessage='uniqueMember: значение #0 неверно для синтаксиса')

Я создаю свой AddRequest следующим образом:

String[] ldifLines = {
 "dn: ou=roles,dc=test,dc=com",
 "objectClass: groupOfUniqueNames",
 "uniqueMember: uid=test.user",  // initialMember
 "cn: Admin"
};
AddRequest request = new AddRequest(ldifLines);
connection.add(request);        // <- this line throws the exception

P.S. connection - это объект LDAPConnection, который правильно подключается к моему серверу ldap, поскольку запросы SearchRequest и DeleteRequests выполняются нормально, поэтому проблема, похоже, не в этом (хотя это может быть способ, которым настроен мой сервер!).

Сервер использует LDAP версии 3.

Если информации, которую я предоставил, недостаточно, пожалуйста, укажите мне, что еще я должен включить.

заранее спасибо


person Nash    schedule 12.06.2017    source источник
comment
Я думаю, что значение uniqueMember недопустимо   -  person M2E67    schedule 12.06.2017
comment
Да, это кажется логичным после сообщения об исключении, однако, когда я добавляю запись вручную через Apache Directory Studio, значение принимается.   -  person Nash    schedule 12.06.2017
comment
Моей первой мыслью было бы, что значение должно быть массивом с первой записью в качестве пользовательского dn, поскольку uniqueMember, безусловно, будет содержать несколько пользователей;)   -  person Esteban    schedule 12.06.2017
comment
Попробуйте проверить другое значение, чтобы убедиться, что проблема связана со значением uniqueMember.   -  person M2E67    schedule 12.06.2017
comment
Я пробовал значения: uid=test.user, test.user, test, но выдается одно и то же исключение.   -  person Nash    schedule 12.06.2017


Ответы (1)


Вы не можете добавить объектный класс groupOfUniqueNames к OU, который уже является объектным классом organizationalUnit.

Вы должны попробовать LDIF, например:

String[] ldifLines = {
 "dn: cn=Admin,ou=roles,dc=test,dc=com",
 "objectClass: groupOfUniqueNames",
 "uniqueMember: uid=test.user",  // initialMember
 "cn: Admin"
};
person Esteban    schedule 12.06.2017