我正在尝试使用 ldap 针对 Active Directory 对 Gerrit 用户进行身份验证。我收到以下错误。
错误 com.google.gerrit.server.cache.PopulatingCache:无法在“groups_byext”中查找 CN%3DORG+%C3%96resund+ALL%2COU%3DOrganisation%2COU%3DGroups%2COU%3DOther%2C DC%3Dcompany%2CDC%3Dcom net.sf.ehcache.CacheException:无法获取键为“CN%3DORG+%C3%96resund+ALL%2COU%3DOrganisation%2COU%3DGroups%2COU%3DOther%2CDC%3Dcom”的缓存条目对象。
...
原因:java.sql.SQLException:操作 '=' 的排序规则 (latin1_swedish_ci,IMPLICIT) 和 (utf8_general_ci,COERCIBLE) 混合非法
我对 mysql 或 Active Directory 不是很有经验,所以我对这个问题一无所知。
对于问题可能出在哪里,有什么建议吗?
答案1
这是 MySQL 错误,而不是 LDAP 错误。听起来您好像获得了一个组列表,但它无法根据其本地组权限表进行检查,因为数据库连接使用了错误的编码。
此线程提出了一个解决方案在 gerrit.conf 中的 JDBC 连接字符串中:
url = jdbc:mysql://foo/reviewdb?user=x&password=y&useUnicode=false&characterEncoding=latin1