2016-09-29 3 views
0

Я использую аутентификацию OAuth в Jira для тестирования некоторых методов в jira с использованием JIRA Rest Java Client. У меня есть токен доступа, используя аутентификацию OAuth, которую мне нужно передать по URL-адресу Jira. Вот все, что у меня есть, чтобы получить токен доступа.Передача маркера доступа в Jira с использованием аутентификации OAuth

Token is 38ESi9IJW5u3vKDslPFtuV1ZtzDpr6zi 
Token secret is cnDSL8oJyuoaQdRcFDwgHzLppSshQn9b 
Retrieved request token. go to http://bmh1060149:8080/plugins/servlet/oauth/authorize?oauth_token=38ESi9IJW5u3vKDslPFtuV1ZtzDpr6zi 
Access token is : 015CeJiH8cpI5R3OKpNco158kApq8YwV 

Теперь я передаю этот токен доступа URL-адреса Jira, но я получаю пустой массив. Пожалуйста, дайте мне знать, где я делаю неправильно, или какие изменения мне необходимо включить в мой код, чтобы эта работа работала. Вот мой код.

public void getAllIssueTypesUsingOAuth(JiraCQCredential jcqcred) { 

     System.out.println("Inside getAllIssuetypeAssociatedToProject for JiraAdapterImpl"); 

     //String username = jcqcred.getUserName(); 
     //String password = jcqcred.getPassword(); 
     String jiraURL = jcqcred.getJiraUrl(); 
     if (!jiraURL.endsWith("/")) { 
      jiraURL = jiraURL + "/"; 
     } 
     try { 
      String accessToken = JiraAdapterImpl.getAccessToken(); // This method is giving me access token 
      URL url = new URL(jiraURL + "rest/api/2" + "/" + "issuetype?access_token=" + accessToken); 
      HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection(); 
      httpConnection.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); 
      httpConnection.setRequestProperty("Content-Type", "application/json"); 
      httpConnection.setRequestMethod("GET"); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream())); 
      StringBuilder sb = new StringBuilder(); 
      String line = ""; 
      while ((line = reader.readLine()) != null) { 
       sb.append(line); 
      } 
      String issueTypes = sb.toString(); 
      System.out.println("Issuetype associated to project are\n" + issueTypes); 
      JSONArray jsonArray = new JSONArray(issueTypes); 
      for (int i = 0; i < jsonArray.length(); i++) { 
       JSONObject jsonObject = jsonArray.getJSONObject(i); 
       String issueNames = (String) jsonObject.get("name"); 
       System.out.println(issueNames); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

Его дает мне пустой массив как []

ответ

0

Привет После поиска немного я, наконец, удался находке решения вышеуказанной проблемы. После получения токена доступа просто передайте этот токен доступа методу makeAuthenticatedRequest (url, accessToken), который даст вам результирующие данные, которые вы хотите извлечь. Здесь url - это URL, который вы хотите удалить, чтобы получить результирующие данные.

private AtlassianOAuthClient getJiraOAuthClient() { 

     final String baseURI = "http://bmh1060149:8080"; 
     final String consumerKey = "hardcoded-consumer"; 
     final String consumerPrivatekey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFkPMZQaTqsSXI+bSI65rSVaDzic6WFA3WCZMVMi7lYXJAUdkXo4DgdfvEBO21Bno3bXIoxqS411G8S53I39yhSp7z2vcB76uQQifi0LEaklZfbTnFUXcKCyfwgKPp0tQVA+JZei6hnscbSw8qEItdc69ReZ6SK+3LHhvFUUP1nLhJDsgdPHRXSllgZzqvWAXQupGYZVANpBJuK+KAfiaVXCgA71N9xx/5XTSFi5K+e1T4HVnKAzDasAUt7Mmad+1PE+56Gpa73FLk1Ww+xaAEvss6LehjyWHM5iNswoNYzrNS2k6ZYkDnZxUlbrPDELETbz/n3YgBHGUlyrXi2PBjAgMBAAECggEAAtMctqq6meRofuQbEa4Uq5cv0uuQeZLV086VPMNX6k2nXYYODYl36T2mmNndMC5khvBYpn6Ykk/5yjBmlB2nQOMZPLFPwMZVdJ2Nhm+naJLZC0o7fje49PrN2mFsdoZeI+LHVLIrgoILpLdBAz/zTiW+RvLvMnXQU4wdp4eO6i8J/Jwh0AY8rWsAGkk1mdZDwklPZZiwR3z+DDsDwPxFs8z6cE5rWJd2c/fhAQrHwOXyrQPsGyLHTOqS3BkjtEZrKRUlfdgV76VlThwrE5pAWuO0GPyfK/XCklwcNS1a5XxCOq3uUogWRhCsqUX6pYfAVS6xzX56MGDndQVlp7U5uQKBgQDyTDwhsNTWlmr++FyYrc6liSF9NEMBNDubrfLJH1kaOp590bE8fu3BG0UlkVcueUr05e33Kx1DMSFW72lR4dht1jruWsbFp6LlT3SUtyW2kcSet3fC8gySs2r6NncsZ2XFPoxTkalKpQ1atGoBe3XIKeT8RDZtgoLztQy7/7yANQKBgQDQvSHEKS5SttoFFf4YkUh2QmNX5m7XaDlTLB/3xjnlz8NWOweK1aVysb4t2Tct/SR4ZZ/qZDBlaaj4X9h9nlxxIMoXEyX6Ilc4tyCWBXxn6HFMSa/Rrq662Vzz228cPvW2XGOQWdj7IqwKO9cXgJkI5W84YtMtYrTPLDSjhfpxNwKBgGVCoPq/iSOpN0wZhbE1KiCaP8mwlrQhHSxBtS6CkF1a1DPm97g9n6VNfUdnB1Vf0YipsxrSBOe416MaaRyUUzwMBRLqExo1pelJnIIuTG+RWeeu6zkoqUKCAxpQuttu1uRo8IJYZLTSZ9NZhNfbveyKPa2D4G9B1PJ+3rSO+ztlAoGAZNRHQEMILkpHLBfAgsuC7iUJacdUmVauAiAZXQ1yoDDo0Xl4HjcvUSTMkccQIXXbLREh2w4EVqhgR4G8yIk7bCYDmHvWZ2o5KZtD8VO7EVI1kD0z4Zx4qKcggGbp2AINnMYqDetopX7NDbB0KNUklyiEvf72tUCtyDk5QBgSrqcCgYEAnlg3ByRd/qTFz/darZi9ehT68Cq0CS7/B9YvfnF7YKTAv6J2Hd/i9jGKcc27x6IMi0vf7zrqCyTMq56omiLdu941oWfsOnwffWRBInvrUWTj6yGHOYUtg2z4xESUoFYDeWwe/vX6TugL3oXSX3Sy3KWGlJhn/OmsN2fgajHRip0="; 

     AtlassianOAuthClient jiraoAuthClient = new AtlassianOAuthClient(consumerKey, consumerPrivatekey, baseURI, ""); 
     return jiraoAuthClient; 
    } 

Вот код, чтобы получить маркер доступа

private String getAccessToken() { 

     AtlassianOAuthClient jiraoAuthClient = getJiraOAuthClient(); 
     TokenSecretVerifierHolder requestToken = jiraoAuthClient.getRequestToken(); 
     String authorizeUrl = jiraoAuthClient.getAuthorizeUrlForToken(requestToken.token); 
     String token = requestToken.token; 
     String tokenSecret = requestToken.secret; 
     System.out.println("Token is " + requestToken.token); 
     System.out.println("Token secret is " + requestToken.secret); 
     System.out.println("Retrieved request token. go to " + authorizeUrl); 

     String accessToken = jiraoAuthClient.swapRequestTokenForAccessToken(token, tokenSecret, ""); 
     System.out.println("Access token is : " + accessToken); 
     return accessToken; 
    } 

Это метод, который вы звоните, чтобы получить данные.

public void getAllCommentOfIssueUsingOAuth() { 

     logger.info("Inside getAllCommentOfIssue for JiraAdapterImpl"); 

     AtlassianOAuthClient jiraoAuthClient = getJiraOAuthClient(); 
     String accessToken = getAccessToken(); 
     String url = "your Jira URL"; 
     String responseAsString = jiraoAuthClient.makeAuthenticatedRequest(url, accessToken); 
     System.out.println(responseAsString); 
    } 

Это даст вам данные JSON или данные XML в resultentString.

Смежные вопросы