Как сделать так, чтобы LdapContextSource указывал на UnboundID InMemoryDirectoryServer?

У меня есть набор старых автоматизированных тестовых случаев, основанных на структуре Spring LDAP. Они подключаются к внешнему серверу LDAP. Я думаю о замене внешнего сервера на встроенный. UnboundID InMemoryDirectoryServer кажется привлекательным, особенно если есть способ, позволяющий клиентам на основе Spring LDAP подключаться к встроенному серверу на основе UnboundID. Вопрос: как это сделать? Я новичок в LDAP, пожалуйста, помогите.


person SolutionMill    schedule 18.02.2013    source источник


Ответы (1)


На самом деле нет большой разницы между внешним и встроенным сервером LDAP. При настройке LdapContextSource вам нужно будет установить URL-адрес сервера, например ldap://localhost:33389/ (при условии, что ваш встроенный сервер прослушивает порт 33389).

Имейте в виду, что по умолчанию UnboundID InMemoryDirectoryServer будет случайным образом выбирать свободный порт во время выполнения, если только вы не настроите его для прослушивания фиксированного порта. Это может помочь вам начать:

InMemoryDirectoryServerConfig config = 
        new InMemoryDirectoryServerConfig("dc=example, dc=com");

// make sure that the server listens on port 33389
config.setListenerConfigs(
        new InMemoryListenerConfig("myListener", null, 33389, null, null, null));

InMemoryDirectoryServer ds = new InMemoryDirectoryServer(config);

ds.startListening();

// import some test data from an ldif file
ds.importFromLDIF(true,"content.ldif");
person zagyi    schedule 18.02.2013
comment
Пожалуйста! :) Если решение сработало, могу ли я попросить вас принять и, возможно, проголосовать за мой ответ? Я спрашиваю это только потому, что вижу, что вы новый пользователь. :) - person zagyi; 19.02.2013