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

Sonarqube Sonar 6.7 SSO-如何触发身份验证?,sonarqube,single-sign-on,Sonarqube,Single Sign On,你好 一段时间以来,我们一直在使用一个SSO插件,该插件用于向身份提供者(群组)进行身份验证,因为群组插件不支持SSO。 现在,我们决定将声纳升级到新的LTS 6.7。但是我们的插件使用的是HttpSession对象(在servlet过滤器中创建),由于Sonar现在是无状态的,这些对象似乎不再受支持。 我们没有使用OAuth2 我一直在寻找一点,但我对如何实现身份验证感到困惑。群组端的通信成功,我得到了用户详细信息和会话令牌。我的插件有现有的自定义验证器、UserProvider和Groups

你好

一段时间以来,我们一直在使用一个SSO插件,该插件用于向身份提供者(群组)进行身份验证,因为群组插件不支持SSO。 现在,我们决定将声纳升级到新的LTS 6.7。但是我们的插件使用的是HttpSession对象(在servlet过滤器中创建),由于Sonar现在是无状态的,这些对象似乎不再受支持。 我们没有使用OAuth2

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

但身份验证从未在声纳端触发。我找不到如何让sonar触发验证器覆盖的
doAuthenticate
方法

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


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

不必单击任何按钮就可以对SonarQube进行身份验证的唯一方法是使用HTTP头


有关更多详细信息,请参阅。

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


有关更多详细信息,请参阅。

首先,感谢您的快速回答。话虽如此,这有点尴尬,因为我管理它时没有使用“新”HTTP头身份验证。实际上,我扩展了一个
BaseIdentityProvider
,在
init(Context)
方法中抛出
authenticate
。然后我让我的servlet过滤器向
/sessions/init/
抛出重定向。它触发身份验证并重定向到sonar home,而用户不做任何输入。有趣!BaseIdentityProvider是为了允许通过OAuth2以外的其他方式进行身份验证而提供的,但我从来没有想过它可以这样使用。也许你可以创建一个开源插件或提供一些例子,因为它可能是有趣的其他用户。我可能会考虑它,当我有时间和我的插件更新完成,作为一个SSO的人群已经问了大约两个时间,所以它可能会对一些人有用。在此之前,您可以查看此内容-这是我看到使用此方法的地方:。感谢分享!顺便问一下,你有没有想过直接使用HTTP头?我之所以这么问,是因为如果你需要做的不仅仅是身份验证,那么拥有一个自动将你登录到SonarQube的插件是很有趣的,但我认为这可能是一种过分的做法,因为你需要维护它。事实上,我没有。我们以前没有使用过它们,所以使用过滤器更简单。Atm我们的群组只发送令牌,我们使用令牌手动获取用户详细信息,因此我自然尝试在sonar插件中解决问题,并保留尽可能多的现有内容。我不认为这是一个更大的努力维护它。首先,谢谢你的快速回答。话虽如此,这有点尴尬,因为我管理它时没有使用“新”HTTP头身份验证。实际上,我扩展了一个
BaseIdentityProvider
,在
init(Context)
方法中抛出
authenticate
。然后我让我的servlet过滤器向
/sessions/init/
抛出重定向。它触发身份验证并重定向到sonar home,而用户不做任何输入。有趣!BaseIdentityProvider是为了允许通过OAuth2以外的其他方式进行身份验证而提供的,但我从来没有想过它可以这样使用。也许你可以创建一个开源插件或提供一些例子,因为它可能是有趣的其他用户。我可能会考虑它,当我有时间和我的插件更新完成,作为一个SSO的人群已经问了大约两个时间,所以它可能会对一些人有用。在此之前,您可以查看此内容-这是我看到使用此方法的地方:。感谢分享!顺便问一下,你有没有想过直接使用HTTP头?我之所以这么问,是因为如果你需要做的不仅仅是身份验证,那么拥有一个自动将你登录到SonarQube的插件是很有趣的,但我认为这可能是一种过分的做法,因为你需要维护它。事实上,我没有。我们以前没有使用过它们,所以使用过滤器更简单。Atm我们的群组只发送令牌,我们使用令牌手动获取用户详细信息,因此我自然尝试在sonar插件中解决问题,并保留尽可能多的现有内容。我不认为维护它也会是更大的努力。