Как обрабатывать LDAP-соединение? - PullRequest
1 голос
/ 23 ноября 2011

Я пытаюсь реализовать следующее:

У меня есть класс Importer, который регистрирует так называемые Processor s, а затем выполняет их, повторяя их и вызывая execute (Processor - интерфейси содержит метод void execute()).

Эти процессоры подключаются к LDAP и выполняют определенные задачи, например, получают список людей и сохраняют его в базе данных, либо читают определенные привилегии и отображают ихдля групп.

Все это работает довольно хорошо ... за исключением того, что я просто не знаю, как обрабатывать соединение LDAP.

Вот несколько идей:

  1. инициализировать соединение в конструкторе (и назначить его полю) и предоставить метод dispose () `, который закрывает соединение или
  2. не инициализировать поле соединения вконструктор, но инициализируйте и закройте его в методе execute() или
  3. , создайте соединение в методе execute и передайте его всем методам, которые называются
  4. , даже более страшно(создайте соединение в Importer и передайте его всем процессорам, затем после выполнения закройте его)

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Обработайте соединение с сервером LDAP с помощью метода Strategy, который является обязательным параметром. Это разъединяет и изолирует код. Для этой работы вы должны предпочесть UnboundID LDAP SDK - и SDK поддерживает возможность создания сервера каталогов в памяти , поэтому нет необходимости использовать «поддельные» или «поддельные» соединения. Также вы можете просмотреть сообщение в блоге "LDAP: Практика программирования" .

1 голос
/ 23 ноября 2011

Создайте его где-нибудь еще и вставьте в приложение.

Если у вас нет JEE6, который обеспечивает внедрение зависимостей через CDDI, вы можете использовать Spring Framework в качестве обходного пути.

У него есть два преимущества.

  1. жизненный цикл соединения находится вне класса, который его использует
  2. соединение может быть заменено фиктивным или поддельным соединением для тестирования.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...