X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigi.java;h=99b136b8fa089d410b4c3695e4aac7afe01d95ac;hb=d723f382f3a54ad8e616c47baf9c6d0ef2317f89;hp=09daf6df3ccb4c3b4d9142075ca36e9a677250b5;hpb=20199b0674ff5acf61343b6640a1895fb54a9914;p=gigi.git diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 09daf6df..99b136b8 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -21,6 +21,8 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.dbObjects.CACertificate; +import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.DomainPingConfiguration; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; @@ -30,6 +32,7 @@ import org.cacert.gigi.output.SimpleMenuItem; import org.cacert.gigi.output.template.Form.CSRFException; import org.cacert.gigi.output.template.Outputable; import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.pages.HandlesMixedRequest; import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.LogoutPage; import org.cacert.gigi.pages.MainPage; @@ -226,6 +229,10 @@ public class Gigi extends HttpServlet { super.init(); return; } + // ensure those static initializers are finished + CACertificate.getById(1); + CertificateProfile.getById(1); + MenuBuilder mb = new MenuBuilder(); rootMenu = mb.generateMenu(); pages = mb.getPages(); @@ -247,24 +254,18 @@ public class Gigi extends HttpServlet { return page; } int idx = pathInfo.lastIndexOf('/'); - pathInfo = pathInfo.substring(0, idx); - page = pages.get(pathInfo + "/*"); + page = pages.get(pathInfo.substring(0, idx) + "/*"); if (page != null) { return page; } - idx = pathInfo.lastIndexOf('/'); - if (idx == -1) { + int lIdx = pathInfo.lastIndexOf('/', idx); + if (lIdx == -1) { return null; } - pathInfo = pathInfo.substring(0, idx); - - page = pages.get(pathInfo + "/*"); - if (page != null) { - return page; - } - return null; + page = pages.get(pathInfo.substring(0, lIdx) + "/" + pathInfo.substring(idx)); + return page; } @@ -343,7 +344,7 @@ public class Gigi extends HttpServlet { public void output(PrintWriter out, Language l, Map vars) { try { if (req.getMethod().equals("POST")) { - if (req.getQueryString() != null) { + if (req.getQueryString() != null && !(p instanceof HandlesMixedRequest)) { return; } p.doPost(req, resp);