Java, LDAP, ADAM – Как создать контейнер с косой чертой в имени
Вопрос
У меня возникли проблемы с написанием кода Java, который создаст контейнер/папку в ADAM, где имя контейнера и отличительное имя содержат косую черту.
например
cn=тест/тест
dn=CN=test/test,CN=TestStore,DC=MyCompany,DC=COM
LdapContext _ctx = getNewContext(valid_userName, valid_userName, valid_userName);
// uses InitialLdapContext under the hood
String containerDN = "dn=CN=test/test,CN=TestStore,DC=MyCompany,DC=COM"
_ctx.createSubcontext(containerDN, attrs); // assume attrs is valid javax.naming.directory.Attributes
Я изо всех сил пытаюсь исключить косую черту из объекта Java String, но при этом позволяю InitialLdapContext создать контейнер с именем.
В приложении ADAM Adsi Edit я могу создавать папки с косой чертой, поэтому предполагаю, что этот процесс можно выполнить и из кода.
Спасибо заранее ...
Решение
Перечитывание API JavaDocs для LDAPContext и DirContext...перегруженный метод createSubContext() предлагает:
public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
интерфейс Name, конкретный класс CompositeName обрабатывает для меня экранирование/неэкранирование специальных символов...
большое спасибо JRL!
Другие советы
От Технет, может быть полезно:
Если имя организационной единицы содержит форвардную черту (/), система требует экономного символа в форме обратной черты (), чтобы различать прямые черты, которые разделяют элементы канонического имени и прямой чертой, который является частью Название организационной единицы.Каноническое имя, которое появляется в пользователях Active Directory и страницах компьютеров, отображает символ Escape, непосредственно предшествующую прямой черте во имя организационной единицы.Например, если название организационной единицы является рекламным акциями/северо -востоком, и название домена - reskit.com, каноническое имя отображается как reskit.com/promotions/northesteast