Jira OAuth - 无法创建应用程序链接

时间:2016-02-01 07:27:34

标签: java oauth rsa jira jira-rest-api

我正在尝试创建一个使用jira进行身份验证的应用程序。我正在使用Jira Rest api。在文档中,它说使用相同的公钥和消费者密钥来创建文档中给出的应用程序链接。这很好,我可以创建访问令牌。但是在this中提到的java代码中,我不确定应该为private_key提供什么。我尝试了两种方法 -

  1. 使用rsa生成一个随机私钥,并提供它代替不起作用的private_key。它给出了异常告诉length too long。我尝试了2048,1024,512,256和128位。一切都给出了同样的错误。
  2. 申请链接:

    消费者密钥:硬编码消费者

    消费者名称:硬编码消费者

    公钥: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxZDzGUGk6rElyPm0iOua0lWg84nOlhQN1gmTFTIu5WFyQFHZF6OA4HX7xATttQZ6N21yKMakuNdRvEudyN / coUqe89r3Ae + rkEIn4tCxGpJWX205xVF3Cgsn8ICj6dLUFQPiWXouoZ7HG0sPKhCLXXOvUXmekivtyx4bxVFD9Zy4SQ7IHTx0V0pZYGc6r1gF0LqRmGVQDaQSbivigH4mlVwoAO9Tfccf + V00hYuSvntU + B1ZygMw2rAFLezJmnftTxPuehqWu9xS5NVsPsWgBL7LOi3oY8lhzOYjbMKDWM6zUtpOmWJA52cVJW6zwxCxE28 / 592IARxlJcq14tjwYwIDAQAB

    1. 生成的私钥和公钥对,分别在应用程序链接和代码中提供相同的内容。但在这种情况下,我无法创建访问令牌。它正在给予 -
    2. 申请链接:

      消费者密钥:硬编码消费者

      消费者名称:硬编码消费者

      公钥: 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)
      

      有人可以解释一下应该怎么做吗?我在这里错过了什么吗? 还有共享密钥,消费者密钥和公钥之间的区别是什么?

      提前致谢

2 个答案:

答案 0 :(得分:0)

我通过使用documentation中提供的公开以及example

中给出的私钥以某种方式修复了此问题

但是,我仍然无法使用我生成的私钥和公钥创建应用程序链接。

答案 1 :(得分:0)

由于在JIRA基本URL中以“/”结尾(由net.oauth.OAuthProblemException: signature_invalid引起),会发生异常。

正确的请求是:

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