Удаление записи LDAP с 0x0A в CN (Java) - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь удалить записи пользователей ADLDS, созданные с помощью модели разрешения конфликтов Microsoft. Microsoft описывает создание новых записей как

The new RDN will be <Old RDN>\0ACNF:<objectGUID>

Это записи, которые я пытаюсь удалить из своей среды.

Мой поиск uid = baduser вернет два CN:

cn = John R. Doe 123456

и

cn = John R. Doe 123456
CNF: 123e4567-e89b- 12d3-a456-426614174000

Вторая запись имеет \ 0A в cn.

Выполнение ctx.destroySubcontext (cn) на нем приводит к примерно такой ошибке:

cn = John R. Doe 123456
CNF: 123e4567-e89b-12d3-a456- 426614174000, c = US: [LDAP: код ошибки 34 - 0000208F: NameErr: DSID-0310022D, проблема 2006 (BAD_NAME), данные 8349

Что мне не хватает, чтобы можно было удалить запись с помощью cn, который содержит символ перевода строки?

примечание: я также не могу читать / изменять эту запись \ 0A с помощью JXplorer. Нажатие на запись после поиска приводит к той же ошибке BAD_NAME.

1 Ответ

0 голосов
/ 16 июня 2020
String commonName = attr.get("cn").get().toString().replace("\n", "\\\\0A");

У меня сработала простая замена символа \ n.

...