2016-02-01 30 views
6

Sto tentando di creare un'applicazione che utilizza jira per l'autenticazione. Sto usando Jira Rest api per lo stesso. Nella documentazione si dice di utilizzare la stessa chiave pubblica e chiave utente per creare il collegamento dell'applicazione come indicato nel doc. Funziona bene e sono in grado di creare un token di accesso. Ma nel codice java come menzionato in this, non sono sicuro di cosa dovrebbe essere dato per private_key. Ho provato due metodi:Jira OAuth - Impossibile creare il collegamento dell'applicazione

  1. Generata una chiave privata casuale utilizzando rsa e fornita al posto di private_key che non funzionava. Ha dato un'eccezione dicendo allo length too long. Ho provato per 2048, 1024, 512, 256 e 128 bit. Tutto ha dato lo stesso errore.

collegamento Applicazione:

Consumer-chiave: hardcoded-consumer

Nome Consumer: hardcoded-consumer

Public Key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxZDzGUGk6rElyPm0iOua0lWg84nOlhQN1gmTFTIu5WFyQFHZF6OA4HX7xATttQZ6N21yKMakuNdRvEudyN/coUqe89r3Ae + rkEIn4tCxGpJWX205xVF3Cgsn8ICj6dLUFQPiWXouoZ7HG0sPKhCLXXOvUXmekivtyx4bxVFD9Zy4SQ7IHTx0V0pZYGc6r1gF0LqRmGVQDaQSbivigH4mlVwoAO9Tfccf + V00hYuSvntU + B1ZygMw2rAFLezJmnftTxPuehqWu9xS5NVsPsWgBL7LOi3oY8 lhzOYjbMKDWM6zUtpOmWJA52cVJW6zwxCxE28/592IARxlJcq14tjwYwIDAQAB

  1. Generated coppia di chiavi pubblica e privata e ha fornito lo stesso in collegamento all'applicazione e nel codice, rispettivamente. Ma in questo caso, non riesco a creare un token di accesso. Si sta dando - link

Applicazione:

Consumer-chiave: hardcoded-consumer

Nome Consumer: hardcoded-consumer

Public Key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0YjCwIfYoprq/FQO6lb3asXrx LlJFuCvtinTF5p0GxvQGu5O3gYytUvtC2JlYzypSRjVxwxrsuRcP3e641SdASwfr mzyvIgP08N4S0IFzEURkV1wp/IpH7kH41EtbmUmrXSwfNZsnQRE5SYSOhh + LcK2w yQkdgcMv11l4KoBkcwIDAQAB

Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.simontuffs.onejar.Boot.run(Boot.java:340) at com.simontuffs.onejar.Boot.main(Boot.java:166) Caused by: java.lang.RuntimeException: Failed to obtain request token at com.atlassian.oauth.client.example.AtlassianOAuthClient.getRequestToken(AtlassianOAuthClient.java:66) at com.atlassian.oauth.client.example.JIRAOAuthClient.main(JIRAOAuthClient.java:52) ... 6 more Caused by: net.oauth.OAuthProblemException: signature_invalid at net.oauth.client.OAuthResponseMessage.toOAuthProblemException(OAuthResponseMessage.java:83) at net.oauth.client.OAuthClient.invoke(OAuthClient.java:306) at net.oauth.client.OAuthClient.invoke(OAuthClient.java:260) at net.oauth.client.OAuthClient.getRequestTokenResponse(OAuthClient.java:190) at com.atlassian.oauth.client.example.AtlassianOAuthClient.getRequestToken(AtlassianOAuthClient.java:57)

Qualcuno può spiegarmi cosa dovrebbe essere fatto? Mi sto perdendo qualcosa qui? E anche qual è la diffrenza tra chiave condivisa, chiave del consumatore e chiave pubblica?

Grazie in anticipo

+1

Se non ricordo male si dovrebbe usare la chiave privata nella vostra applicazione client di firmare le richieste. Ovviamente hai bisogno di un paio di chiavi pubbliche e private che corrispondono. Sfortunatamente non conosco API Java da quando ho usato .NET – Robert

+0

Tnx per la risposta @Robert. Ho risolto il problema in qualche modo e ho pubblicato la risposta – DivyaMenon

risposta

0

in qualche modo risolto il problema utilizzando il pubblico che viene fornito nella documentation e la chiave privata come indicato nella example

Ma ancora, è stato in grado di creare un collegamento all'applicazione con chiave privata e pubblica generata da me.

0

L'eccezione si verifica a causa della fine con "/" nell'URL di base JIRA (causato da net.oauth.OAuthProblemException: signature_invalid).

La richiesta corretta è:

java -jar rest-oauth-client-1.0.one-jar.jar requestToken https://jira_base_server_url http://your_redirctedUrl