如何在SonarQube中集成CAS身份验证

时间:2013-12-05 14:24:02

标签: authentication single-sign-on sonarqube cas

我们希望将CAS身份验证集成到Sonar 3.7 LTS中。我们想开始使用已弃用的CAS插件,这当然不起作用。我们已经将它与来自here的LDAP插件进行了比较,其中Authenticator有趣地实现了已弃用的接口LoginPasswordAuthenticator。其中一个主要区别是CAS Authenticator插件实现了Authenticator。所以我们改变了它实现LoginPasswordAuthenticator的CAS插件。

现在有了线索:
在这两种情况下,实施AuthenticatorLoginPasswordAuthenticator的身份验证器,传递给它的用户名为null。对CAS服务器的身份验证就像一个魅力,插件知道用户名,但Sonar询问插件,如果它知道名为null的用户。结果是,当我们点击登录时,我们会被重定向到CAS,填写登录表单并重定向回Sonar,仍未通过Sonar本身验证。

我们还考虑过使用容器身份验证,但不确定它是否适用于Sonar。

现在问题:

  • 是否有人使用CAS插件与Sonar 3.7一起工作?如果是,您如何提供源/解决方案/插件?
  • 除了上面提到的方法之外还有其他方法吗?

另外一个注意事项:我们希望在现有的Tomcat 7中使用Sonar,因此使用Sonar 4是一种我们不想去的方式,因为Sonar团队决定停止战争支持。如果其他任何事情都失败了,使用它是一种令人痛苦但又可以接受的解决方案。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

试试这个叉子:https://github.com/jerzykrlk/sonar-cas

我恢复了原始插件的行为 - 它应该与Sonar 3.7一起使用。这是非官方的,需要手动构建。但也许它会在某个时刻成为官方插件。

答案 1 :(得分:1)

感谢@psqita,我们获得了Sonar的CAS插件,并与Saml 1.1一起运行。业务要求表示不允许匿名访问。可悲的是,将forceAuthentication设置为true会让我们陷入无休止的CAS和Sonar之间的痛苦重定向。所以我们发现Sonar以一种忽略所有身份验证插件的方式彻底改变了它的行为。

我们的解决方案:根据业务要求,我们无法允许匿名访问。所以我们实现了另一个Filter,它有条件地重定向到CAS。身份验证和内容仍由插件完成。可悲的是,我们仍然不知道为什么首先会出现这种无限循环,但现在它不再发生了。那就是我想的......

感谢您的支持和节日快乐。