import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
byte[] cacerts = Files.readAllBytes(Paths.get("config/cacerts.jks"));
byte[] keystore = Files.readAllBytes(Paths.get("config/keystore.pkcs12"));
- DevelLauncher.writeGigiConfig(dos, "changeit".getBytes(), "changeit".getBytes(), mainProps, cacerts, keystore);
+ DevelLauncher.writeGigiConfig(dos, "changeit".getBytes("UTF-8"), "changeit".getBytes("UTF-8"), mainProps, cacerts, keystore);
dos.flush();
InputStream oldin = System.in;
System.setIn(new ByteArrayInputStream(chunkConfig.toByteArray()));
instF.setAccessible(true);
pageF.setAccessible(true);
Object gigi = instF.get(null);
- HashMap<String, Page> pages = (HashMap<String, Page>) pageF.get(gigi);
+
+ // Check if we got a proper map (as much as we can tell)
+ Object pagesObj = pageF.get(gigi);
+ @SuppressWarnings("unchecked")
+ HashMap<String, Page> pages = pagesObj instanceof Map ? new HashMap<>((Map<String, Page>) pagesObj) : null;
+
pages.put("/manage", new Page("Page-manager") {
@Override
public boolean needsLogin() {
return false;
}
+
});
+
pages.put("/kill", new Page("Kill") {
@Override
return false;
}
});
+
+ pageF.set(gigi, Collections.unmodifiableMap(pages));
} catch (ReflectiveOperationException e) {
e.printStackTrace();
}