
Minha compilação do Jenkins chama uma tarefa Sonar que extrai do Jira os resultados de um filtro salvo. O problema que tenho é que o pedido do Sonar é sempre negado. Eu tenho um cluster bastante complexo de máquinas (Jira 4.4.3, Sonar 3.2.1, Jenkins 1.473, etc), todas autenticadas através do 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
Verifiquei que a conta que o Sonar está usando para entrar em contato com o Jira é válida e tem permissão para acessar o Jira. Eu tenho o Sonar Crowd Plugin instalado e configurado de acordo com odocumentação, mas algo não está certo. Quando faço login no Sonar, vejo os seguintes erros no sonar.log (mas meu login foi bem-sucedido):
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
- Pontos chave:
- Os logs do servidor Crowd não me dizem nada. Não há registro de que a solicitação de autenticação do Sonar tenha chegado ao Crowd.
- Eu defini application.login.url em sonar-3.2.1/conf/sonar.properties E Sonar-Tomcat/conf/crowd.properties, mas sonar.log não está captando.
- Sonar ESTÁ coletando algumas informações de sonar-3.2.1/conf/sonar.properties. Mudei o crowd.url para ver se o sonar registraria a mudança e isso aconteceu.
- session.validationinterval é definido como 0 em Sonar-Tomcat/conf/crowd.properties, mas o sonar.log mostra session.validationinterval como 5. Não consigo descobrir de onde ele está obtendo esse valor.
http://10.74.47.12:8095/crowd/services/SecurityServer
é um URL válido e há um servidor SOAP disponível lá.
Também tenho o Jenkins Crowd Plugin e o Jenkins Jira Plugin instalados e não vejo nenhum problema nisso.
Alguém mais tentou isso e há alguma etapa extra que estou perdendo?
Responder1
:) Tenho uma resposta para você!!! Fiquei animado quando descobri isso há uma semana. Eu tive uma questão semelhante.
http://wiki.idalko.com/display/SONAUT/Sonar+Authenticator+for+JIRA
Esse cara retirou o código e o corrigiu para funcionar com a multidão incorporada do Jira. Estou implantando-o em servidores de teste agora... está funcionando muito bem para mim!