Я использую java ldap для доступа к активному каталогу, а точнее к spring ldap. групповой поиск по objectGUID не дает результатов, если фильтр закодирован, как указано в rfc2254.
это руководство в его шестнадцатеричном представлении:
\49\00\f2\58\1e\93\69\4b\ba\5f\8b\86\54\e9\d8\e9
spring ldap кодирует фильтр следующим образом:
(&(objectClass=group)(objectGUID=\5c49\5c00\5cf2\5c58\5c1e\5c93\5c69\5c4b\5cba\5c5f\5c8b\5c86\5c54\5ce9\5cd8\5ce9))
как указано в rfc2254 и в Microsoft technet:
символ должен быть закодирован как символ обратной косой черты '\' (ASCII 0x5c), за которым следуют две шестнадцатеричные цифры, представляющие значение ASCII закодированного символа. Регистр двух шестнадцатеричных цифр не имеет значения. Цитата
поэтому обратная косая черта должна быть «\ 5c»
но я не получаю результатов с вышеуказанным фильтром из AD. также, если я помещу этот фильтр в пользовательские фильтры консоли управления AD, он не будет работать. когда я удаляю 5c из фильтра, он работает как из java, так и в консоли AD.
Я что-то упустил здесь?
конечно, я могу закодировать фильтр без 5c, но я не уверен, что это правильно, и я предпочитаю, чтобы Spring кодировал фильтры, потому что он знает много вещей, которые я должен делать вручную.