我的 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 嵌入人群一起使用。我现在正在将它部署到测试服务器...它对我来说效果很好!