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
- 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
- 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
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
Tnx per la risposta @Robert. Ho risolto il problema in qualche modo e ho pubblicato la risposta – DivyaMenon