LDAP с Liferay - неизвестный хост, где существует - PullRequest
2 голосов
/ 26 апреля 2019

Мне нужно интегрировать LDAP с двумя разными сервисами: exoPlatform и Liferay.Поэтому я настроил сервер LDAP через образ Docker со следующими конфигурациями:

  • Имя сервера: openldap
  • URL основного провайдера: ldap: // openldap: 389
  • Базовое DN: cn = пользователи, ou = платформа, o = acme, dc = пример, dc = org

Моя учетная запись администратора просто: cn = admin

С exoPlatform,это работает нормально, я могу войти с моими учетными записями LDAP.Вот конфигурации в picketlink-idm-openldap-config.xml:

<option>
  <name>providerURL</name>
  <value>ldap://openldap:389</value>
</option>
<option>
  <name>adminDN</name>
  <value>cn=admin,dc=example,dc=org</value>
</option>
<option>
  <name>adminPassword</name>
  <value>admin</value>
</option>

Но для Liferay, это говорит мне, что хост не известен ... Unable to bind to the LDAP server liferay | javax.naming.CommunicationException: openldap:389 [Root exception is java.net.UnknownHostException: openldap] Caused by: java.net.UnknownHostException: openldap

Iне знаю, связано ли это, но я все равно скажу это на всякий случай, у меня есть 2 разных docker-compose, которые я запускаю одновременно:

  • тот, который содержит изображения openldap, phpldapadmin, exoPlatform и mysql1
  • тот, который содержит liferay и mysql2 изображений

Я также за корпоративным прокси, но я нене помню, что сделал что-то особенное для exoPlatform.Я просто добавил настройки прокси-сервера в Catalina Tomcat для моих образов exoPlatform и Liferay.

Кроме того, я установил аутентификацию LDAP на enabled на панели управления Liferay с помощью Bind method.

1 Ответ

2 голосов
/ 27 апреля 2019

Это проблема сети между вашими контейнерами, exoPlatform работает, но Liferay нет, потому что указанный хост openldap не существует в своем собственном контейнере, а также порт 389 может быть недоступен оттуда.

Вы можете выполнить быструю проверку без запуска java / ldap, выполнив следующую команду из контейнера Liferay:

telnet openldap 389

Она, вероятно, выдаст «Сеть недоступна», в этом случае вынеобходимо создать сеть и подключить контейнеры к этой сети >>> Как общаться между контейнерами Docker через "имя хоста"

...