Я пытаюсь аутентифицировать пользователей Gerrit, используя ldap против Active Directory. Я получаю следующую ошибку.
ОШИБКА com.google.gerrit.server.cache.PopulatingCache: невозможно найти CN% 3DORG +% C3% 96resund + ALL% 2COU% 3DOrganisation% 2COU% 3DGroups% 2COU% 3DOther% 2C DC% 3Dcompany% 2CDC% 3Dcom в сети "groups_byext" .sf.ehcache.CacheException: не удалось получить объект для записи кэша с ключом "CN% 3DORG +% C3% 96resund + ALL% 2COU% 3DOrganisation% 2COU% 3DGroups% 2COU% 3DOther% 2CDC% 3Dcompany% 2CDC% 3Dcom".
...
Вызвано: java.sql.SQLException: недопустимое сочетание сопоставлений (latin1_swedish_ci, IMPLICIT) и (utf8_general_ci, COERCIBLE) для операции '='
Я не очень разбираюсь в mysql или Active Directory, поэтому почти не разбираюсь в этом вопросе.
Есть предложения, в чем может быть проблема?
Это ошибка MySQL, а не ошибка LDAP. Похоже, вы получаете список групп, но он не может проверить его по таблице разрешений локальной группы, потому что соединение с базой данных использует неправильную кодировку.
Эта ветка предлагает решение в строке подключения JDBC в gerrit.conf:
url = jdbc:mysql://foo/reviewdb?user=x&password=y&useUnicode=false&characterEncoding=latin1