Sonar 6.7 SSO - 如何触发身份验证?

Sonar 6.7 SSO - How to trigger authentication?

你好,

我们已经使用了一段时间的 SSO 插件,我们制作它来通过身份提供者 (Crowd) 进行身份验证,因为 crowd-plugin 不支持 SSO。 现在,我们决定将 Sonar 升级到新的 LTS 6.7。但是我们的插件使用的是 HttpSession 对象(在 servlet 过滤器中创建),由于 Sonar 现在是无状态的,因此似乎不再支持这些对象。 我们没有使用 OAuth2。

我一直在寻找,但我对如何实现身份验证感到困惑。 Crowd 端的通信成功,我得到了用户详细信息和会话令牌。我的插件具有现有的自定义 Authenticator、UserProvider 和 GroupsProvider,它们应该可以正常工作。

但是身份验证永远不会在 Sonar 端触发。我找不到如何让声纳触发我的身份验证器覆盖的 doAuthenticate 方法。

我不能使用 BaseIdentityProvider 因为用户不应该进行任何操作,如果他有 Crowd cookie,他应该自动连接,或者被重定向到我们的 Crowd 登录页面以便他可以连接;根据我的理解,BaseIdentityProvider 只是添加了一个连接外部身份提供者的选项。

有人知道如何从 servlet 过滤器代码触发身份验证吗?还是我必须重新开始并使用完全不同的方式?

无需单击任何按钮即可对 SonarQube 进行身份验证的唯一方法是使用 HTTP header。

有关详细信息,请参阅 documentation