在 Sonar 中通过身份验证后如何根据条件将用户添加到特定组

How do I add user to a specific group based on a condition after they are authenticated in Sonar

我有一个自定义功能要在 SonarQube 5.5 中实现。

我有一个插件,它基本上是 Sonar Open ID Plugin 的一个分支,用于反映我们公司的 SSO 身份验证。它工作正常,它使用基于 cookie 的身份验证来验证用户身份,并在验证成功后将他们带回 Sonar。

我被告知要进行另一项更改。当用户通过外部身份验证提供程序(公司的 SSO 服务)成功进行身份验证并创建用户(如果尚未存在)时,我需要验证用户。在用户验证的基础上,我需要将用户添加到特定组。如果验证通过,则将此用户添加到组 A(Sonar 组)。如果不是,则将他添加到 B 组(Sonar 组)。

在这两种情况下我都不能使用默认的组行为,我需要将它们添加到某个 Sonar 组。

这将在 SonarQube 5.5 的 Sonar 插件中完成。有人可以告诉我如何使用他们的扩展点使用 OpenID PLugin 作为起点来做到这一点吗?请注意,需要保留 OpenID 插件的所有现有功能(如果不存在则自动创建用户)。

有关如何执行此操作的一些示例代码将非常有帮助。

在此先致谢!

从 SonarQube 5.4 开始,API 存在以便能够使用外部提供程序对用户进行身份验证:

从 5.5 开始,您还可以 associate groups 来自用户的提供商。

请查看 GitHub Authentication plugin,它允许用户从 GitHub 进行身份验证并将 GitHub 组关联到 SonarQube 组。