如何通过 Crowd 授予 Sonar 访问 Jira 的权限?

如何通过 Crowd 授予 Sonar 访问 Jira 的权限?

我的 Jenkins 构建调用 Sonar 任务,从 Jira 中提取已保存过滤器的结果。我遇到的问题是 Sonar 的请求总是被拒绝。我有一个相当复杂的机器集群(Jira 4.4.3、Sonar 3.2.1、Jenkins 1.473 等),全部通过 Crowd 2.2.2 进行身份验证。

2012.10.17 12:00:03 INFO  c.a.c.i.s.s.c.SecurityServerClientImpl  Existing application token is null, authenticating ...
2012.10.17 12:00:03 ERROR o.c.x.t.h.HttpChannel  Server returned error code = 403 for URI : http://10.74.47.12:8095/crowd/services/SecurityServer. Check server logs for details
2012.10.17 12:00:03 ERROR rails  Error from external authenticator: org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Server returned error code = 403 for URI : http://10.74.47.12:8095/crowd/services/SecurityServer. Check server logs for details

我已验证 Sonar 用于联系 Jira 的帐户有效且有权访问 Jira。我已安装并配置了 Sonar Crowd 插件,如下所示文档,但有些不对劲。当我登录 Sonar 时,我在 sonar.log 中看到以下错误(但我的登录成功):

2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Loading property: 'application.name' : 'sonar'
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Failed to find value for property: application.login.url
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Loading property: 'crowd.server.url' : 'http://10.74.47.120:8095/crowd/services/'
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Failed to find value for property: session.isauthenticated
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Failed to find value for property: session.tokenkey
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Failed to find value for property: session.lastvalidation
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.ClientPropertiesImpl  Loading property: 'session.validationinterval' : '5'
2012.10.17 15:49:53 INFO  c.a.c.i.s.s.c.SecurityServerClientImpl  Existing application token is null, authenticating ...
2012.10.17 15:49:54 ERROR o.c.x.t.h.HttpChannel  Server returned error code = 403 for URI : http://10.74.47.12:8095/crowd/services/SecurityServer. Check server logs for details
2012.10.17 15:49:54 ERROR rails  Error from external authenticator: org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Server returned error code = 403 for URI : http://10.74.47.12:8095/crowd/services/SecurityServer. Check server logs for details
  • 关键点:
    • Crowd 服务器上的服务器日志没有告诉我任何信息。Sonar 身份验证请求甚至没有到达 Crowd 的记录。
    • 我已经在 sonar-3.2.1/conf/sonar.properties 和 Sonar-Tomcat/conf/crowd.properties 中定义了 application.login.url,但是 sonar.log 并未拾取它。
    • Sonar 确实从 sonar-3.2.1/conf/sonar.properties 中获取了一些信息。我更改了 crowd.url 以查看 sonar 是否会记录更改,结果确实如此。
    • session.validationinterval 在 Sonar-Tomcat/conf/crowd.properties 中定义为 0,但 sonar.log 显示 session.validationinterval 为 5。我不知道它从哪里得到这个值。
    • http://10.74.47.12:8095/crowd/services/SecurityServer是一个有效的 URL,并且那里有一个可用的 SOAP 服务器。

我还安装了 Jenkins Crowd 插件和 Jenkins Jira 插件,但没有发现任何问题。

还有其他人尝试过这个吗?我是否遗漏了一些额外的步骤?

答案1

:) 我有一个答案给你!!!一周前我发现这个时很兴奋。我也遇到过类似的问题。

http://wiki.idalko.com/display/SONAUT/Sonar+Authenticator+for+JIRA

这个人分叉了代码并修复了它,使其可以与 Jira 嵌入人群一起使用。我现在正在将它部署到测试服务器...它对我来说效果很好!

相关内容