
Моя сборка 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.
- Я определил application.login.url как в sonar-3.2.1/conf/sonar.properties, так и в Sonar-Tomcat/conf/crowd.properties, но sonar.log его не обнаруживает.
- Sonar получает часть информации из sonar-3.2.1/conf/sonar.properties. Я изменил crowd.url, чтобы посмотреть, зарегистрирует ли sonar изменение, и он это сделал.
- session.validationinterval определен как 0 в Sonar-Tomcat/conf/crowd.properties, но 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 Embedded Crowd. Я сейчас развертываю его на тестовых серверах... у меня он отлично работает!