2016-04-19 1 views
0

Я создал роль со следующей РДН:Как проверить, существует ли РДН в LDAP или не используя Java

erglobalid=3224285689051620393,ou=roles,erglobalid=00000000000000000000,ou=org,dc=com 

Я удалил выше роль

Теперь выше РДН не существует в LDAP.

, но я хочу проверить, существует ли это в LDAP? есть ли какой-нибудь метод для этого?

Я проверил с search() и lookup() методами, но эти методы метания исключения .. Из-за whcih в соответствии с требованием моего заявления я должен написать код в блоке улова, который не является идеальным

может кто-то пожалуйста, помогите я с этим

+1

Это DN (отличное имя), а не RDN (относительное уважаемое имя). Часть RDN - это 'erglobalid = 3224285689051620393'. Если вы удалили эту запись, она будет удалена: трудно понять, почему вы хотите ее проверить. Если удаление не удалось, было бы выбрано исключение. «Context.lookup» («erglobalid = 3224285689051620393, ou = role, erglobalid = 00000000000000000000, ou = org, dc = com») 'будет подтверждать, если не удается. «Не идеально» - это просто состояние ума. Этот метод предназначен для исключения исключения, и вы должны его поймать. – EJP

+0

Я не хочу проверять, не удалось ли удаление, у меня есть список dns в одном массиве и вы хотите удалить те dn, которые не являются частью ldap. – user3363047

+0

Если вы не хотите его проверять, почему вы спрашиваете, как это проверить? ? – EJP

ответ

0

Я создал роль со следующей РДН:

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.

Я представляю себе, что вы на самом деле с просьбой о том, проверка на существование до того удаления. Это также плохая идея: она вызывает два поиска на сервере вместо одного и вдвое больше сетевого трафика или больше ... и он страдает от проблемы с временным окном: он может существовать, когда вы тестируете и не существуете, когда вы удалять или, что еще хуже, может быть, не существует, когда вы тестируете, но существуете при удалении или когда вы удаляете. Не делай этого. Не думайте так. Удаление - это атомная операция, которая не будет выполнена, если запись не существует. Это именно то, что вы хотите.