为什么IntelliJ IDEA和Sonar报告中不显示Security Hotspot问题?
排查方案
问题1:Sonar Security Hotspot 未在 IntelliJ IDEA 中展示
- 首先校验版本兼容性:IDEA 安装的 SonarLint 插件大版本和项目绑定的 SonarQube 服务大版本差不能超过2,跨大版本会出现规则同步失败、安全类问题不展示的问题
- 检查 SonarLint 绑定配置:进入
Settings > Tools > SonarLint,确认当前项目已经和对应的 SonarQube 服务、远程项目完成绑定,手动触发一次规则同步 - 核对规则开启状态:进入
Settings > Tools > SonarLint > Rules,搜索对应语言的 Security Hotspot 规则,确认没有被手动禁用 - 检查编辑器检查阈值:进入
Settings > Editor > Inspections,确认 SonarLint 对应的安全类检查项没有被关闭,且规则严重级别没有低于编辑器当前的展示阈值 - 清除本地缓存重试:进入
Settings > Tools > SonarLint > Advanced Settings,点击Clear all caches后重启 IDEA,重新触发全项目扫描
问题2:运行带覆盖率的 "All Tests" 后 Sonar 报告无 Security Hotspot 问题
- 检查扫描参数:确认执行 Sonar 扫描的命令中没有添加
sonar.security.hotspot.skip=true类的跳过安全扫描配置,该参数默认值为 false - 核对扫描范围:检查
sonar.inclusions、sonar.exclusions配置,确认安全热点所在的代码文件没有被排除在扫描范围外 - 校验服务端规则集:进入 SonarQube 对应项目的
Quality Profiles配置页,确认当前使用的规则集中 Security Hotspot 相关规则已启用,没有被移除 - 排查权限限制:执行扫描的账号需要具备对应项目的安全热点查看权限,部分 SonarQube 版本会根据账号权限过滤报告中的敏感安全类内容
- 检查覆盖率关联配置:确认没有开启「仅扫描单元测试覆盖代码」的配置,安全热点可能存在于未被测试覆盖的代码中,该配置会直接过滤未覆盖代码的安全问题
- 查看调试日志:执行扫描命令时添加
-X参数输出 debug 日志,搜索SecurityHotspot关键词,排查是否存在规则加载失败、文件扫描跳过的报错
内容的提问来源于stack exchange,提问作者Vasanthakumar Jagannathan
相关产品推荐
相关产品推荐

