It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Jira rest api issue export with cookie authentication returns 401 Edited

Dear community,

im actually writing an exporter for all project issues in java using cookie authentication.

In the end, i want to safe all json data to a file i did get.

Problem: I do constantly receive http 401 as i use my session id (received from basic auth. before) as my cookie variable.

I did make sure that the syntax of my cookie is correct, so there have to be another detail i have missed. So my jsonData at the end of code still remains empty. Is another authentication needed?

I have full access to the project and everything else works fine.

<...> placeholder

output:

loginResponse: 
{"session":{"name":"JSESSIONID","value":"3CA6985D902FEEB7FA5A79FF6E570218"},"loginInfo":{"failedLoginCount":6,"loginCount":130,"lastFailedLoginTime":"2019-09-16T15:02:49.185+0200","previousLoginTime":"2019-12-06T09:17:35.689+0100"}}

JSessionID:
"3CA6985D902FEEB7FA5A79FF6E570218"
https://<baseurl>.com/jira/rest/api/2/search?jql=project="<projectname>"&username=<username>


401

jsonData:

SUCCES!
code:


public static String parseJSessionID(String input) {
String jSessionID = "";
try{
JsonElement parser = new JsonParser().parse(input);
Object obj = parser.getAsJsonObject();
JsonObject jsonObject = (JsonObject) obj;
JsonObject sessionJsonObj = (JsonObject) jsonObject.get("session");
jSessionID = (String) sessionJsonObj.get("value").toString();
} catch (Exception ex){
System.out.println("Error in parseJSessionID: " + ex.getLocalizedMessage());
jSessionID = "ERROR";
}
System.out.println("\nJSessionID: ");
System.out.println(jSessionID);
return jSessionID;
}

public static String getJsonData(String baseURL, String jSessionID, String loginUserName) {
String jsonData = "";
try {
URL url = new URL(baseURL + "api/2/search" + "?jql=project=\"<projectname>\"" + "&username=" + loginUserName);

System.out.println(url.toString());
System.out.println("\n");
String cookie = "JSESSIONID=" + jSessionID;
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Cookie", cookie);
System.out.println(conn.getResponseCode());


if(conn.getResponseCode() == 200) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output = "";
while((output = br.readLine()) != null) {
jsonData += output;
}
conn.disconnect();
}
} catch (Exception ex) {
System.out.println("Error in getJsonData: " + ex.getLocalizedMessage());
jsonData = "ERROR";
}

 

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you