Como você concede acesso do Sonar ao Jira por meio do Crowd?

Como você concede acesso do Sonar ao Jira por meio do Crowd?

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!

informação relacionada