Skip to content
Snippets Groups Projects
Commit 6416b30d authored by Elisa Giglio's avatar Elisa Giglio
Browse files

Merge remote-tracking branch 'refs/remotes/origin/master'

update
parents 0af3771a b0a63b8a
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,9 @@ import java.net.URI; ...@@ -9,6 +9,9 @@ import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.json.JSONException;
import org.json.JSONObject;
import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpHandler;
...@@ -17,8 +20,9 @@ public class Home implements HttpHandler { ...@@ -17,8 +20,9 @@ public class Home implements HttpHandler {
@Override @Override
public void handle(HttpExchange exchange) throws IOException { public void handle(HttpExchange exchange) throws IOException {
URI requestURI = exchange.getRequestURI(); URI requestURI = exchange.getRequestURI();
boolean wantsHome = Helper.compareText(requestURI.toString(),URI.create("/").toString());
if(requestURI.compareTo(URI.create("/")) != 0) { boolean wantsKeycloak = Helper.compareText(requestURI.toString(),URI.create("/keycloack.json").toString());
if(!wantsHome || !wantsKeycloak) {
String error = "Invalid URI"; String error = "Invalid URI";
OutputStream os = exchange.getResponseBody(); OutputStream os = exchange.getResponseBody();
exchange.sendResponseHeaders(400, error.getBytes().length); exchange.sendResponseHeaders(400, error.getBytes().length);
...@@ -29,14 +33,27 @@ public class Home implements HttpHandler { ...@@ -29,14 +33,27 @@ public class Home implements HttpHandler {
String requestMethod = exchange.getRequestMethod(); String requestMethod = exchange.getRequestMethod();
if (Helper.compareText(requestMethod, "GET")) { if (Helper.compareText(requestMethod, "GET")) {
String response = getHomePage();
List<String> strlist = new ArrayList<>(); List<String> strlist = new ArrayList<>();
strlist.add("text/html"); String response = null;
exchange.getResponseHeaders().put("content-type", strlist); if(wantsHome){
exchange.sendResponseHeaders(200, response.getBytes().length); response = getHomePage();
OutputStream os = exchange.getResponseBody(); strlist.add("text/html");
os.write(response.getBytes()); } else if (wantsKeycloak){
os.close(); response = getKeycloak();
strlist.add("text/json");
}
if(!Helper.compareText(response, "fail")){
exchange.getResponseHeaders().put("content-type", strlist);
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
} else {
exchange.sendResponseHeaders(500, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
} else { } else {
Helper.methodNotAllowed(exchange); Helper.methodNotAllowed(exchange);
} }
...@@ -94,6 +111,39 @@ public class Home implements HttpHandler { ...@@ -94,6 +111,39 @@ public class Home implements HttpHandler {
return answer.toString(); return answer.toString();
} }
private static String getKeycloak(){
String page = Server.CLIENT_PATH+"/keycloak.json";
BufferedReader bufferedReader = null;
StringBuilder answer = new StringBuilder();
try {
FileReader fileReader = new FileReader(page);
bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
answer.append(line.trim());
}
JSONObject js = new JSONObject(answer.toString());
return js.toString();
} catch (FileNotFoundException ex) {
System.out.println("Unable to open file '" + page + "'");
return "fail";
} catch (IOException ex) {
System.out.println("Error reading file '" + page + "'");
return "fail";
} catch (JSONException e) {
System.out.println("The file doesn't contain a JSON '" + page + "'");
return "fail";
} finally {
try{
if(bufferedReader != null)
bufferedReader.close();
} catch (IOException ex){
System.out.println("Error closing bufferedReader");
}
}
}
private static String getExtension(String file) { private static String getExtension(String file) {
int i = file.length() - 1; int i = file.length() - 1;
while (i > 0 && file.charAt(i) != '.' && file.charAt(i) != '/') while (i > 0 && file.charAt(i) != '.' && file.charAt(i) != '/')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment