ApacheDS, встроенный в Spring

Согласно документации Spring, можно настроить встроенный сервер ApacheDS, что упрощает тестирование. Есть ли причина, почему бы не использовать ApacheDS, встроенный в Spring, при развертывании? есть ли какое-то ограничение для этого?

Также я заметил, что он пишет во временный каталог /tmp/apacheds-spring-security. Есть ли способ настроить его?


person Elad Tabak    schedule 03.07.2013    source источник


Ответы (1)


Я уже участвовал в проекте, в котором при разработке и развертывании использовался встроенный сервер ApacheDS (для тестового сервера). Было две небольшие проблемы:

  • Если вы неправильно остановили свое приложение (например, через Terminate в режиме отладки или через kill -9), вам необходимо вручную очистить каталог /tmp/apacheds-spring-security. Если вы оставите временные файлы, во время следующей загрузки вашего приложения будет выдано исключение времени выполнения.
  • Мы не нашли, как изменить временный каталог по умолчанию (/tmp/apacheds-spring-security).

Надеюсь это поможет.

EDIT. Для первой проблемы я остановился на прослушивателе servlet-api. Он был объявлен перед прослушивателем контекста Spring (для обеспечения выполнения до Spring и ApacheDS). Этот прослушиватель отвечал за проверку и очистку /tmp/apacheds-spring-security. Возможно, это не самое элегантное решение, но оно работает. Для этого случая лучше иметь параметр в ApacheDS, что-то вроде -DapacheDSCleanUpWorkDirAtStutup=true.

person Maksym Demidas    schedule 03.07.2013
comment
По первому пункту, который вы упомянули, я еще не нашел решения. Но для изменения временного каталога apached я нашел решение: вы можете запустить сервер с параметром -DapacheDSWorkDir=‹рабочий каталог› - person Elad Tabak; 04.07.2013
comment
Для первой проблемы я остановился на прослушивателе servlet-api. Он был объявлен перед прослушивателем контекста Spring (для обеспечения выполнения до Spring и ApacheDS). Этот прослушиватель отвечал за проверку и очистку /tmp/apacheds-spring-security. Большое спасибо за параметр apacheDSWorkDir! - person Maksym Demidas; 04.07.2013
comment
Настоящая проблема, как мне кажется, заключается в том, что он не знает, как начать работу с существующей конфигурацией. Это означает, что каждый запуск, каждое изменение, касающееся пользователей в apacheDS, стирается, и вам приходится заново создавать все изменения. Тем не менее, вы не можете полагаться на него для развертывания (если вы не напишете свою собственную постоянство и не реплицируете все изменения, но это как бы упускает смысл) - person Elad Tabak; 08.07.2013
comment
Я думаю, вы можете использовать его для развертывания, как в случае, когда ваше приложение не изменяет содержимое LDAP. Например, контент LDAP загружается из файла LDIF в sturtup и затем используется только для аутентификации/авторизации. Если вы хотите изменить содержимое LDAP в этой ситуации, вам нужно изменить файл LDIF и перезапустить ApacheDS, чтобы принять изменения во внимание. - person Maksym Demidas; 08.07.2013
comment
Точно. Это хорошо только для статической аутентификации (т. е. тесного набора пользователей и ролей). Но тогда, если ваши пользователи статичны, какой смысл иметь сервер ldap? - person Elad Tabak; 09.07.2013
comment
Эмуляция внутреннего LDAP-сервера клиента, который недоступен для команды разработчиков во время разработки. - person Maksym Demidas; 09.07.2013