【发布时间】:2017-12-12 22:22:45
【问题描述】:
你好,
一段时间以来,我们一直在使用我们制作的 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 过滤器代码触发身份验证吗?还是我必须重新开始并使用完全不同的方式?
【问题讨论】: