Что такое хороший встраиваемый сервер Java LDAP?

Я работаю над веб-приложением Java, которое интегрируется с несколькими другими внешними приложениями, которые развертываются вместе с ним. Информация аутентификации должна быть синхронизирована во всем, а другие приложения хотят аутентифицироваться по LDAP. Приложение будет развернуто в среде, где не будет другого LDAP-сервера, который мог бы использовать все; Я должен это предоставить. Мое решение до сих пор заключалось в использовании Сервер Пенроуза в качестве автономного приложения, которое я настроил для проверки таблиц в базе данных основного приложения и публикации LDAP на основе этого. Он работает хорошо, но было бы неплохо иметь что-то, что можно было бы встроить в само основное приложение, чтобы упростить развертывание.

Похоже, что Пенроуза можно встроить, но документация может быть немного неаккуратной или устаревшей (хотя, похоже, она активно разрабатывается). Это могло бы быть приемлемым решением, но если есть другое, которое, как известно, хорошо работает во встроенной конфигурации, я мог бы проверить его.

Я также обеспокоен проблемами GPL с Пенроузом. Я не вправе раздавать исходный код приложения по лицензии GPL. Я не верю, что это была проблема с автономным запуском, но встраивание может быть нет-нет ... кто-нибудь знает наверняка? Разрешающая лицензия была бы хороша, чтобы избежать этих проблем.

Требования:

  1. LDAP v3
  2. Должна иметься возможность обновлять содержимое каталога во время работы, программно или другими способами, такими как синхронизация с базой данных, как это делает Пенроуз.
  3. Простота настройки (идеальным вариантом не было бы дополнительной настройки приложения во время развертывания)

Пока я вкратце рассмотрел ApacheDS и OpenDS, которые кажутся встраиваемыми.

Есть ли у кого-нибудь опыт работы с подобными вещами?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
24
0
14 673
4

Ответы 4

Поскольку на этот вопрос в течение некоторого времени не было ответа, я хотел бы предложить вам также принять во внимание коммерческую лицензию Penrose - у нее есть двойная лицензия для таких же людей, как вы, когда последствия GPL запрещены. Я не знаю их цены и модель, но может быть проще и дешевле использовать решение, которое вы уже знаете, чем привыкать к другому решению, к которому вам нужно привыкнуть. Вы можете заплатить своими деньгами или своим временем ...

Также - для записей, не применяемых в данном случае: когда проекты используют GPL, и вы хотите внедрить их не-GPL способом, может быть полезно попросить разработчиков о более разрешительной лицензии. Некоторые люди публикуют под GPL, не задумываясь о последствиях. Вы можете заставить их изменить лицензию, если это означает более широкое использование проекта. Другим особенно нужны последствия GPL, но всегда полезно спросить. Пенроуз уже подумал об этом и предлагает коммерческую лицензию.

Я только что потратил пару дней на то, чтобы представить нашу внутреннюю пользовательскую базу данных приложения как службу LDAP. Сначала я посмотрел на apache-ds, хотя это, кажется, очень мощная служба каталогов, расширяющая ее, чтобы раскрыть реляционную базу данных, ошеломляюще сложна.

Остановились на Penrose, поскольку он, кажется, предлагает довольно хорошее решение, прототип решения удалось создать примерно за 2 часа.

Вам следует взглянуть на Apache DS. Я просто начал использовать его как встроенный сервер, чтобы настроить тест JUnit. Пока он работает хорошо, единственное, что меня сейчас останавливает, - это мои ограниченные знания LDAP. ApacheDS выглядит достойным проектом, и я думаю, что он того стоит.

Я никогда не делал этого сам, но вы можете легко использовать Spring Security для настроить встроенный сервер каталогов Apache с минимальной требуемой конфигурацией Spring XML.

Встроенный LDAP-сервер Spring предназначен только для тестирования. Сомневаюсь, что есть какие-то рекомендации использовать его в продакшене.

Yervand Aghababyan 23.09.2015 11:00

Другие вопросы по теме