]> WPIA git - gigi.git/blobdiff - util-testing/org/cacert/gigi/DevelLauncher.java
Support reading configuration from file
[gigi.git] / util-testing / org / cacert / gigi / DevelLauncher.java
index 8c010bdc42bdf3105abd1b3dd9a5b794862e97db..0fe534548aeab7b22c9e6ad030692f21e7e87c92 100644 (file)
@@ -31,6 +31,8 @@ import org.cacert.gigi.dbObjects.ObjectCache;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.output.template.TranslateCommand;
+import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
 import org.cacert.gigi.pages.account.certs.CertificateRequest;
 import org.cacert.gigi.pages.main.RegisterPage;
@@ -68,9 +70,7 @@ public class DevelLauncher {
 
         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()));
-        new Launcher().boot();
+        new Launcher().boot(new ByteArrayInputStream(chunkConfig.toByteArray()));
         addDevelPage(true);
         new Thread("ticket awaiter") {
 
@@ -92,7 +92,6 @@ public class DevelLauncher {
                 }
             }
         }.start();
-        System.setIn(oldin);
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
         System.out.println("Cacert-gigi system sucessfully started.");
         System.out.println("Press enter to shutdown.");
@@ -120,8 +119,12 @@ public class DevelLauncher {
 
             // Check if we got a proper map (as much as we can tell)
             Object pagesObj = pageF.get(gigi);
+            if ( !(pagesObj instanceof Map)) {
+                throw new Error("Invalid state when initializing page structure");
+            }
+
             @SuppressWarnings("unchecked")
-            HashMap<String, Page> pages = pagesObj instanceof Map ? new HashMap<>((Map<String, Page>) pagesObj) : null;
+            HashMap<String, Page> pages = new HashMap<>((Map<String, Page>) pagesObj);
 
             pages.put("/manage", new Page("Page-manager") {
 
@@ -129,6 +132,7 @@ public class DevelLauncher {
                 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
                     ObjectCache.clearAllCaches();
                     RegisterPage.RATE_LIMIT.bypass();
+                    LoginPage.RATE_LIMIT.bypass();
                     CertificateRequest.RATE_LIMIT.bypass();
                     resp.getWriter().println("All caches cleared.");
                     System.out.println("Caches cleared.");
@@ -178,7 +182,7 @@ public class DevelLauncher {
     private static void addTicketPage(HashMap<String, Page> pages) {
         pages.put("/ticketWait", new Page("ticket") {
 
-            Template t = new Template(DevelLauncher.class.getResource("DevelTicketWait.templ"));
+            private final Template t = new Template(DevelLauncher.class.getResource("DevelTicketWait.templ"));
 
             @Override
             public boolean needsLogin() {
@@ -208,7 +212,7 @@ public class DevelLauncher {
                     sess.setAttribute(LOGGEDIN, true);
                     sess.setAttribute(Language.SESSION_ATTRIB_NAME, user.getPreferredLocale());
                     sess.setAttribute(AUTH_CONTEXT, new AuthorizationContext(user, user));
-                    req.getSession().setAttribute(LOGIN_METHOD, "Ticket");
+                    req.getSession().setAttribute(LOGIN_METHOD, new TranslateCommand("Ticket"));
                     resp.getWriter().println("ticket consumed");
                     ticketUsed = true;
                 }