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;
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;
}
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);