My Jenkins build calls a Sonar task that pulls from Jira the results of a saved filter. The problem I have is that Sonar's request is always denied. I have a fairly complex cluster of machines (Jira 4.4.3, Sonar 3.2.1, Jenkins 1.473, etc) all authenticating through 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
I have verified that the account Sonar is using to contact Jira is valid and has permission to access Jira. I have the Sonar Crowd Plugin installed and configured according to the documentation, but something isn't right. When I log into Sonar I see the following errors in the sonar.log (but my login succeeds):
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
- Key points:
- The server logs on the Crowd server tell me nothing. There's no record of the Sonar authentication request even reaching Crowd.
- I have defined application.login.url in both sonar-3.2.1/conf/sonar.properties AND
Sonar-Tomcat/conf/crowd.properties, but sonar.log isn't picking it
up. - Sonar IS picking up some of the information from sonar-3.2.1/conf/sonar.properties. I changed the crowd.url to see if
sonar would register the change and it did. - session.validationinterval is defined as 0 in Sonar-Tomcat/conf/crowd.properties but the sonar.log shows
session.validationinterval as 5. I can't work out where it's getting
that value from. http://10.74.47.12:8095/crowd/services/SecurityServer
is a valid URL and there is a SOAP server available there.
I also have the Jenkins Crowd Plugin and the Jenkins Jira Plugin installed and I don't see any problems there.
Has anyone else tried this and is there some extra step I'm missing?
Best Answer
:) I have an answer for you!!! I was excited when I found this a week ago. I had a similar issue.
http://wiki.idalko.com/display/SONAUT/Sonar+Authenticator+for+JIRA
This guy forked off the code and fixed it to work with Jira embedded crowd. I am deploying it to test servers right now... its working great for me!