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