]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/Gigi.java
add: let a user revoke his certificates.
[gigi.git] / src / org / cacert / gigi / Gigi.java
index 6af640ead48ddf2b83a8a2905f8415ff46c6d85d..d153758ee31037dfaaf3d5b5794f01b13d27e50c 100644 (file)
@@ -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,13 +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;
         }
-        return null;
+
+        int lIdx = pathInfo.lastIndexOf('/', idx);
+        if (lIdx == -1) {
+            return null;
+        }
+        page = pages.get(pathInfo.substring(0, lIdx) + "/" + pathInfo.substring(idx));
+        return page;
 
     }
 
@@ -332,7 +338,7 @@ public class Gigi extends HttpServlet {
                 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
                     try {
                         if (req.getMethod().equals("POST")) {
-                            if (req.getQueryString() != null) {
+                            if (req.getQueryString() != null && !(p instanceof HandlesMixedRequest)) {
                                 return;
                             }
                             p.doPost(req, resp);