Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Rest Client inside Jira plugin

Pedro Felgueiras
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 15, 2016

Hi there, 

 

I want to get the data from the SLA on my JIRA plugin. 

The way I'm trying to do this is by using the rest service. 

Here is an example of my code: 

 

String baseUrl = System.getProperty("baseurl");
String resourceUrl = baseUrl + "/rest/servicedesk/1/servicedesk/sla/issue/"+issue.getKey();
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(resourceUrl);
try {
	HttpResponse response = client.execute(request);
} catch (IOException e) {
	e.printStackTrace();
}

 

The output of my code is:

[INFO] [talledLocalContainer] Client must be authenticated to access this resource.

 

 

Is there any way to pass the authentication to the HttpClient?  

Is this the better way of getting the sla of an issue? 

 

 

1 answer

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

2 votes
Answer accepted
Petar Petrov (Appfire)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 15, 2016

As you've already discovered, calling REST APIs from the server side is not that easy due to the authentication complications - you have several options if you want to stick with that:

  • hardcode credentials and do basic auth (bad idea - hardcoding passwords or even storing them)
  • prompt the user to re-enter the authentication information and do basic auth (you'll need UI for that, bad user experience, as the user is already logged in)
  • get the session cookie from the request and do cookie based authentication - you'll need a way to get the cookie, if you search on answers I think there are some pointers
  • use oauth - never tried it, but configuration seems complicated as it needs to go through application links - search on answers if interested

 

Since your code is running inside an add-on in JIRA, a much simpler approach for me is to you use the Service Desk java API instead - it looks like it has what you need. Check out the SlaInformationService interface javadoc. You'll need to get hold of the SlaInformationServiceInterface instance, construct a SlaInformationQuery via the builder and call SlaInformationService.getInfo().

Pedro Felgueiras
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 15, 2016

I have gone other way, instead of trying to use the rest api inside JIRA add-on (Java) I have renitente a par of my code to use it on the client side of the api (javascript). 

The Service Desk java API is to much confusing, so I try to avoid it. 

Petar Petrov (Appfire)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 16, 2016

Yes, that's a good way to do it as well.

Cesar Cruz Alvarez July 17, 2017

Hi @Pedro Felgueiras,

I need to create a rest client inside Jira plugin too,

I have a question about your last comment:

When you say:  "I have renitente a par of my code to use it on the client side of the api (javascript)"

What do you mean? Could you please provide more info about this? :)

Thank you!!

 

Pedro Felgueiras
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 18, 2017

The point is that besides quering the api on the java side where you need authentication you can querie it on the client side using the credentials that are loged on jira. 

Cesar Cruz Alvarez July 22, 2017

ooh I see, sounds good! :o

Thank you so much @Pedro Felgueiras

TAGS
AUG Leaders

Atlassian Community Events