Я создал роль со следующей РДН:
erglobalid=3224285689051620393,ou=roles,erglobalid=00000000000000000000,ou=org,dc=com
Нет, вы этого не сделали. Это DN (Distinguished Name), а не RDN (Relative Distinguished Name). РДН часть этого erglobalid=3224285689051620393.
Я удалил выше роль
Хорошо для вас.
Теперь вышеуказанный rdn не существует в LDAP.
Вышеуказанные DN не существует в LDAP.
Я хочу проверить, существует ли это в LDAP?
Это не так. Вы удалили его. Если удаление завершилось неудачно, оно могло бы вызвать исключение. Если это не сработало, оно удалено, поэтому его не существует.
есть ли какой-либо метод для этого?
Да, есть search()
и lookup()
методы.
Я проверил с search()
и lookup()
методами, но эти методы бросают исключения ... Из-за чего в соответствии с требованием моего заявления я должен написать код в блоке поймать
Correct.
, который не является идеальным
Какой способ эти API-интерфейсы предназначены. Невезение. Вы ничего не можете с этим поделать.NB search()
не генерирует исключение, если ничего не соответствует: он возвращает пустое перечисление SearchResult
.
Я представляю себе, что вы на самом деле с просьбой о том, проверка на существование до того удаления. Это также плохая идея: она вызывает два поиска на сервере вместо одного и вдвое больше сетевого трафика или больше ... и он страдает от проблемы с временным окном: он может существовать, когда вы тестируете и не существуете, когда вы удалять или, что еще хуже, может быть, не существует, когда вы тестируете, но существуете при удалении или когда вы удаляете. Не делай этого. Не думайте так. Удаление - это атомная операция, которая не будет выполнена, если запись не существует. Это именно то, что вы хотите.
Это DN (отличное имя), а не RDN (относительное уважаемое имя). Часть RDN - это 'erglobalid = 3224285689051620393'. Если вы удалили эту запись, она будет удалена: трудно понять, почему вы хотите ее проверить. Если удаление не удалось, было бы выбрано исключение. «Context.lookup» («erglobalid = 3224285689051620393, ou = role, erglobalid = 00000000000000000000, ou = org, dc = com») 'будет подтверждать, если не удается. «Не идеально» - это просто состояние ума. Этот метод предназначен для исключения исключения, и вы должны его поймать. – EJP
Я не хочу проверять, не удалось ли удаление, у меня есть список dns в одном массиве и вы хотите удалить те dn, которые не являются частью ldap. – user3363047
Если вы не хотите его проверять, почему вы спрашиваете, как это проверить? ? – EJP