【发布时间】:2016-01-25 09:36:25
【问题描述】:
我正在尝试在 SonarQube(最新)上设置用户映射,以便它可以从 LDAP 获取组织结构。
我已经在 Sonar (1.5.1) 上安装了 LDAP 插件,并创建了一个最小配置来连接两者:
# General Configuration
sonar.security.realm=LDAP
ldap.url=ldap://ldap:389
# User Mapping
ldap.user.baseDn=ou=users,ou=udd,dc=example,dc=com
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={uid}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
我所有的用户都在 example.com 域下:
但是,当我尝试使用 LDAP 条目登录 Sonar 时,我在日志中收到以下错误:
Error from external users provider: exception Java::OrgSonarApiUtils::SonarException: Unable to retrieve details for user dev1 in <default>
这很令人沮丧,因为所有这些属性都是在上面的配置文件中配置的。
关于这个问题的根源有什么想法吗?
编辑:
我在将日志深度增加到 DEBUG 时发现了这一点:
2016.01.25 05:54:27 DEBUG web[o.s.p.l.LdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldap://ldap:389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ld
ap.connect.pool=true, java.naming.security.authentication=simple, java.naming.referral=follow}
2016.01.25 05:54:27 DEBUG web[o.s.p.l.LdapUsersProvider] integer expected inside {}: (&(objectClass=inetOrgPerson)(uid={uid}))
javax.naming.directory.InvalidSearchFilterException: integer expected inside {}: (&(objectClass=inetOrgPerson)(uid={uid}))
at com.sun.jndi.toolkit.dir.SearchFilter.format(SearchFilter.java:602) ~[na:1.7.0_95]
at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1785) ~[na:1.7.0_95]
...
我不明白为什么在 {} 之间应该有一个整数,而且与我的 LDAP 结构相比,这没有多大意义。
【问题讨论】: