@Override public void handle(HttpExchange t) throws IOException { LOGGER.debug("root req " + t.getRequestURI()); if (RemoteUtil.deny(t)) { throw new IOException("Access denied"); } if (t.getRequestURI().getPath().contains("favicon")) { RemoteUtil.sendLogo(t); return; } HashMap<String, Object> vars = new HashMap<>(); vars.put("logs", getLogs(true)); if (configuration.getUseCache()) { vars.put( "cache", "http://" + PMS.get().getServer().getHost() + ":" + PMS.get().getServer().getPort() + "/console/home"); } String response = parent.getResources().getTemplate("doc.html").execute(vars); RemoteUtil.respond(t, response, 200, "text/html"); }
private ArrayList<HashMap<String, String>> getLogs(boolean asList) { Set<File> files = new DbgPacker().getItems(); ArrayList<HashMap<String, String>> logs = asList ? new ArrayList<HashMap<String, String>>() : null; for (File f : files) { if (f.exists()) { String id = String.valueOf(parent.getResources().add(f)); if (asList) { HashMap<String, String> item = new HashMap<>(); item.put("filename", f.getName()); item.put("id", id); logs.add(item); } } } return logs; }
@Override public void handle(HttpExchange t) throws IOException { LOGGER.debug("root req " + t.getRequestURI()); if (RemoteUtil.deny(t)) { throw new IOException("Access denied"); } if (t.getRequestURI().getPath().contains("favicon")) { RemoteUtil.sendLogo(t); return; } HashMap<String, Object> vars = new HashMap<>(); vars.put("serverName", configuration.getServerName()); vars.put("profileName", configuration.getProfileName()); String response = parent.getResources().getTemplate("start.html").execute(vars); RemoteUtil.respond(t, response, 200, "text/html"); }
@Override public void handle(HttpExchange t) throws IOException { LOGGER.debug("file req " + t.getRequestURI()); String path = t.getRequestURI().getPath(); String response = null; String mime = null; int status = 200; if (path.contains("crossdomain.xml")) { response = "<?xml version=\"1.0\"?>" + "<!-- http://www.bitsontherun.com/crossdomain.xml -->" + "<cross-domain-policy>" + "<allow-access-from domain=\"*\" />" + "</cross-domain-policy>"; mime = "text/xml"; } else if (path.startsWith("/files/log/")) { String filename = path.substring(11); if (filename.equals("info")) { String log = PMS.get().getFrame().getLog(); log = log.replaceAll("\n", "<br>"); String fullLink = "<br><a href=\"/files/log/full\">Full log</a><br><br>"; String x = fullLink + log; if (StringUtils.isNotEmpty(log)) { x = x + fullLink; } response = "<html><title>UMS LOG</title><body>" + x + "</body></html>"; } else { File file = parent.getResources().getFile(filename); if (file != null) { filename = file.getName(); HashMap<String, Object> vars = new HashMap<>(); vars.put("title", filename); vars.put( "brush", filename.endsWith("debug.log") ? "debug_log" : filename.endsWith(".log") ? "log" : "conf"); vars.put("log", RemoteUtil.read(file).replace("<", "<")); response = parent.getResources().getTemplate("util/log.html").execute(vars); } else { status = 404; } } mime = "text/html"; } else if (parent.getResources().write(path.substring(7), t)) { // The resource manager found and sent the file, all done. return; } else { status = 404; } if (status == 404 && response == null) { response = "<html><body>404 - File Not Found: " + path + "</body></html>"; mime = "text/html"; } RemoteUtil.respond(t, response, status, mime); }