Настройка Gerrit для использования LDAP

Я пытаюсь настроить gerrit с помощью ldap. Моя конфигурация gerrit ldap выглядит следующим образом:

[ldap]
    server = ldap://foobar.local
    username = foobar\\gstralko
    password = mypassword
    accountBase = dc=foobar,dc=local
    groupBase = dc=foobar,dc=local

Когда я запускаю gerrit через:

java -jar /home/glassfish/gerrit-2.8.3.war init -d gerrit

Я получаю в логах следующие ошибки:

[2015-04-02 18:19: 07,491] ОШИБКА com.google.gerrit.server.auth.ldap.LdapRealm: невозможно запросить LDAP для аутентификации пользователя javax.naming.AuthenticationException: [LDAP: код ошибки 49 - 80090308: LdapErr: DSID-0C0903AA, комментарий: ошибка AcceptSecurityContext, данные 775, v1772] в com.sun.jndi.ldap.LdapCtx.mapErrorCode (LdapCtx.java:3067)

Я знаю, что пользователь ldap настроен правильно, потому что с ldapsearch я могу делать следующее:

ldapsearch -h foobar.local -x -LLL -b "dc=foobar,dc=local" -D 'foobar\gstralko' -W

И это работает. Так что мне интересно, что мне не хватает в моем файле gerrit.config.

Спасибо,


person Gerb    schedule 02.04.2015    source источник
comment
Это похоже на систему ADS, и ошибка указывает на проблему с аутентификацией LDAP. Попробуйте username = gstralko@yourd-ads-domain или аналогичный.   -  person volker    schedule 04.04.2015


Ответы (1)


Я подозреваю, что синтаксический анализатор файла конфигурации сбивает вас с толку из-за параметра пароля,
поэтому обратите внимание на любые символы '\' и заключите пароль в кавычки -марки,
вот так:

...
password = "mypassword"
...

См., Например, эту документацию Gerrit:

...
Синтаксический анализатор файла конфигурации использует один уровень обратной косой черты,
поэтому класс символов \ s требует \\ s в файле конфигурации.
Анализатор также завершает строку первым #,
поэтому выражение соответствия, содержащее #, должно быть заключено в двойные кавычки.

(из https://review.openstack.org/Documentation/config-gerrit.html#_file_code_etc_gerrit_config_code)

person Gonen    schedule 29.07.2015