You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube升级至7.1版本后LDAP认证失效问题咨询

问题分析与解决方案

首先明确:这不是SonarQube 7.1的BUG,而是升级后新的用户认证校验逻辑,触发了你数据库中原本存在的隐藏问题。

从你提供的报错日志里,关键信息是这句:

org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

它指向UserDao.selectByEmail方法——也就是说,SonarQube在通过LDAP认证同步用户时,查询数据库发现有两个用户的邮箱地址完全相同,而7.1版本的认证逻辑要求邮箱必须唯一,所以抛出了这个异常,导致认证失败。

为什么7.0版本没问题?因为SonarQube 7.1在用户身份同步的逻辑上做了强化,新增了邮箱唯一性的校验步骤,而7.0及更早版本没有这个严格的检查,所以重复数据的问题被隐藏了。

解决步骤:

  1. 连接到SonarQube的数据库,执行查询语句找出重复邮箱的用户:
    SELECT email, COUNT(*) FROM users GROUP BY email HAVING COUNT(*) > 1;
    
  2. 处理重复数据:
    • 如果你确定其中一个是冗余用户,可以直接删除(注意:删除前要确认该用户没有关联重要的项目权限、历史记录等,避免影响业务);
    • 或者修改其中一个用户的邮箱地址,确保每个用户的邮箱唯一。
  3. 重启SonarQube服务,之后再测试LDAP认证功能,应该就能正常工作了。

额外提示:

后续升级SonarQube前,建议先检查数据库中的用户数据完整性,避免这类隐藏的重复数据问题触发新版本的校验逻辑。

内容的提问来源于stack exchange,提问作者Воффка Сергеевич

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:30:00