
Mein Jenkins-Build ruft eine Sonar-Aufgabe auf, die die Ergebnisse eines gespeicherten Filters aus Jira abruft. Mein Problem ist, dass Sonars Anfrage immer abgelehnt wird. Ich habe einen ziemlich komplexen Maschinencluster (Jira 4.4.3, Sonar 3.2.1, Jenkins 1.473 usw.), die alle über Crowd 2.2.2 authentifiziert werden.
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
Ich habe überprüft, dass das Konto, das Sonar zur Kontaktaufnahme mit Jira verwendet, gültig ist und über die Berechtigung zum Zugriff auf Jira verfügt. Ich habe das Sonar Crowd Plugin installiert und gemäß denDokumentation, aber irgendetwas stimmt nicht. Wenn ich mich bei Sonar anmelde, werden mir die folgenden Fehler im sonar.log angezeigt (aber meine Anmeldung ist erfolgreich):
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
- Wichtige Punkte:
- Die Serverprotokolle auf dem Crowd-Server sagen mir nichts. Es gibt keinen Eintrag darüber, dass die Sonar-Authentifizierungsanfrage Crowd überhaupt erreicht hat.
- Ich habe application.login.url sowohl in sonar-3.2.1/conf/sonar.properties als auch in Sonar-Tomcat/conf/crowd.properties definiert, aber sonar.log erkennt es nicht.
- Sonar holt sich einige der Informationen aus sonar-3.2.1/conf/sonar.properties. Ich habe die crowd.url geändert, um zu sehen, ob Sonar die Änderung registriert, und das hat es.
- session.validationinterval ist in Sonar-Tomcat/conf/crowd.properties als 0 definiert, aber das sonar.log zeigt session.validationinterval als 5 an. Ich kann nicht herausfinden, woher dieser Wert kommt.
http://10.74.47.12:8095/crowd/services/SecurityServer
ist eine gültige URL und dort ist ein SOAP-Server verfügbar.
Ich habe auch das Jenkins Crowd Plugin und das Jenkins Jira Plugin installiert und sehe dort keine Probleme.
Hat das sonst noch jemand versucht und gibt es einen zusätzlichen Schritt, den ich übersehe?
Antwort1
:) Ich habe eine Antwort für dich!!! Ich war begeistert, als ich das vor einer Woche gefunden habe. Ich hatte ein ähnliches Problem.
http://wiki.idalko.com/display/SONAUT/Sonar+Authenticator+for+JIRA
Dieser Typ hat den Code abgezweigt und ihn so angepasst, dass er mit Jira Embedded Crowd funktioniert. Ich stelle ihn gerade auf Testservern bereit ... bei mir funktioniert er super!