In this blog the following topics will be covered:
Make data easy with Helical Insight.
Helical Insight is the world’s best open source business intelligence tool.
1) Jasper server Authentication
2) Checking and creating a directoryusing java REST API.
Prerequisites: Eclipse Neon, JDK 1.8
The RESTful interface of Jasper Reports server responds to HTTP requests from client applications. In the following methods
- GET – used to get the information of server resources
- POST – used to create resources in the server
- PUT – used to update the resources in the server
- DELETE – used to delete the resources from the server
- Jasper server Authentication:
REST service: j_spring_security_check
Method: GET
URL: http://localhost:port/jasperserver-pro/j_spring_security_check?j_username=” + username+ “&j_password=” + password
If the credentials are correct, then it returns session id.
Java source code:
package task.login;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class ServerAuthentication {
public static void main(String args[]) {
System.out.println("Session ID : " + ServerAuthentication.
LoginRequest("superuser", "superuser"));
}
public static String LoginRequest(String username, String password) {
URL url = null;
HttpURLConnection con = null;
String jsessionId = "";
String urlLink = "http://localhost:port/jasperserver- pro/j_spring_security_check?"+ "j_username=" + username+ "&j_password=" + password;
try {
url = new URL(urlLink);
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.connect();
System.out.println("Login response code :" + con.getResponseCode());
String session_id = con.toString() + "";
int index1 = session_id.indexOf("=");
int index2 = session_id.indexOf("?");
jsessionId = session_id.substring(index1 + 1, index2);
} catch (IOException e) {
e.printStackTrace();
}
return jsessionId;
}
}
2 . Directory checking in Jasper server :
REST service: rest_v2
Method: GET
URL: http://localhost:port/jasperserver-pro/rest_v2/resources/public/my_Test/” + dirName
If the directory already exists in the server returns true , not exist then returns false.
Java source code:
package task.login;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
class CheckingDirectory {
public static void main(String args[]) {
System.out.println(CheckingDirectory.checkDirectory("myName"));
}
public static boolean checkDirectory(String dirName) {
URL url = null;
HttpURLConnection con = null;
int responseCode = 0;
boolean existStaus = false;
String username = "superuser";
String password ="superuser";
String session_id = ServerAuthentication.LoginRequest(username, password);
String urlLink = "http://localhost:port/jasperserver-pro/rest_v2/resources/public/my_Test/" + dirName;
try {
url = new URL(urlLink);
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Cookie", "JSESSIONID=" + session_id);
con.setDoOutput(true);
con.setRequestMethod("GET");
con.connect();
responseCode = con.getResponseCode();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Checking Response Code : " + responseCode);
if (responseCode == 404) {
existStaus = false;
} else if (responseCode == 200) {
existStaus = true;
}
return existStaus;
}
}
- Directory Creating in Jasper server :
REST service: rest_v2
Method: POST
Make data easy with Helical Insight.
Helical Insight is the world’s best open source business intelligence tool.
URL: http://localhost/jasperserver-pro/rest_v2/resources/public/my_Test
If the directory is created returns true, if not return false.
Java source code:
package task.login;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONException;
import org.json.JSONObject;
class CreatingDirectory {
public static void main(String args[]) {
System.out.println(CreatingDirectory.createDirectory("MyName"));
}
public static boolean createDirectory(String dirName) {
boolean creationStatus = false;
URL url = null;
HttpURLConnection con = null;
int responseCode = 0;
String username="superuser";
String password="superuser";
String session_id = ServerAuthentication.LoginRequest(username,password);
String urlLink = "http://localhost:port/jasperserver-pro/rest_v2/resources/public/my_Test";
try {
url = new URL(urlLink);
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Cookie", "JSESSIONID=" + session_id);
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/repository.folder+json");
con.setRequestProperty("Accept", "application/repository.folder+json");
con.setRequestMethod("POST");
JSONObject jsonBodyInfo = new JSONObject();
try {
jsonBodyInfo.put("label", dirName);
jsonBodyInfo.put("description", "Sample Test");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
wr.write(jsonBodyInfo.toString());
wr.flush();
con.connect();
responseCode = con.getResponseCode();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("creation Response Code : " + responseCode);
if (responseCode == 404) {
creationStatus = false;
} else if (responseCode == 401) {
System.out.println("Un-Authorised Access");
}
if (responseCode == 201) {
creationStatus = true;
}
return creationStatus;
}
}
User Demo : we can check functionality of these individual programs at a time using this source code
package task.login;
import java.util.Scanner;
public class UserDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String dirName;
String username, password;
System.out.println("Enter Login Details of Jasper Server");
System.out.println("Enter username :");
username = sc.next();
System.out.println("Enter password :");
password = sc.next();
String sessionId = ServerAuthentication.LoginRequest(username, password);
if (sessionId != null) {
System.out.println("Login successful with Session ID : " + sessionId);
}
System.out.println("Enter directory name to check whether exists or not in server :");
dirName = sc.next();
boolean existStatus = CheckingDirectory.checkDirectory(dirName);
if (existStatus == false) {
boolean creationStatus = CreatingDirectory.createDirectory(dirName);
if (creationStatus == true) {
System.out.println("Directory Successfully Created with name :" + dirName);
} else {
System.out.println("Failed to created Directory");
}
} else {
System.out.println("Directory Already exists with name :" + dirName);
}
}
}
Best Open Source Business Intelligence Software Helical Insight is Here

A Business Intelligence Framework
In Case if you have any queries please get us at support@helicaltech.com
Make data easy with Helical Insight.
Helical Insight is the world’s best open source business intelligence tool.
Thank You
Anjaneyulu
Helical IT Solutions Pvt Ltd