]> WPIA git - gigi.git/blobdiff - util-testing/org/cacert/gigi/DevelLauncher.java
fix: Possible NPE when no menu previously existed
[gigi.git] / util-testing / org / cacert / gigi / DevelLauncher.java
index 8c010bdc42bdf3105abd1b3dd9a5b794862e97db..736947d55ac566675d62c25b93d06fa2120058ff 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;
@@ -120,8 +122,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 +135,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 +185,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 +215,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;
                 }