X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigi.java;h=d153758ee31037dfaaf3d5b5794f01b13d27e50c;hb=fb0c8e9aaae8379b8f6d9b1a42b39ea014ac3e47;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..d153758e 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -30,6 +30,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; @@ -247,24 +248,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 +338,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);