X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2FGigi.java;h=6a0b7936e704881648264accf1c7c4b2875742ad;hb=a507c4de2568faaf53bb8d6e003ffbe1ced5d539;hp=863122c7f117b45169f6262c42adff7e7afee486;hpb=d78ce634f5b5a4cc8ee00332b1c942cdae61adf7;p=gigi.git diff --git a/src/club/wpia/gigi/Gigi.java b/src/club/wpia/gigi/Gigi.java index 863122c7..6a0b7936 100644 --- a/src/club/wpia/gigi/Gigi.java +++ b/src/club/wpia/gigi/Gigi.java @@ -34,6 +34,7 @@ import club.wpia.gigi.output.SimpleMenuItem; import club.wpia.gigi.output.SimpleUntranslatedMenuItem; import club.wpia.gigi.output.template.Form.CSRFException; import club.wpia.gigi.output.template.Outputable; +import club.wpia.gigi.output.template.PlainOutputable; import club.wpia.gigi.output.template.Template; import club.wpia.gigi.output.template.TranslateCommand; import club.wpia.gigi.pages.AboutPage; @@ -66,6 +67,7 @@ import club.wpia.gigi.pages.admin.support.SupportEnterTicketPage; import club.wpia.gigi.pages.admin.support.SupportUserDetailsPage; import club.wpia.gigi.pages.error.AccessDenied; import club.wpia.gigi.pages.error.PageNotFound; +import club.wpia.gigi.pages.main.KeyCompromisePage; import club.wpia.gigi.pages.main.RegisterPage; import club.wpia.gigi.pages.orga.CreateOrgPage; import club.wpia.gigi.pages.orga.ViewOrgPage; @@ -110,11 +112,17 @@ public final class Gigi extends HttpServlet { return m; } + private Menu createMenu(Outputable name) { + Menu m = new Menu(name); + categories.add(m); + return m; + } + public MenuCollector generateMenu() throws ServletException { putPage("/denied", new AccessDenied(), null); putPage("/error", new PageNotFound(), null); putPage("/login", new LoginPage(), null); - Menu mainMenu = createMenu("SomeCA.org"); + Menu mainMenu = createMenu(new PlainOutputable(ServerConstants.getAppName())); mainMenu.addItem(new SimpleMenuItem("https://" + ServerConstants.getHostNamePort(Host.WWW) + "/login", "Password Login") { @Override @@ -134,6 +142,7 @@ public final class Gigi extends HttpServlet { putPage(StatisticsRoles.PATH, new StatisticsRoles(), mainMenu); putPage("/about", new AboutPage(), mainMenu); putPage(RegisterPage.PATH, new RegisterPage(), mainMenu); + putPage(KeyCompromisePage.PATH, new KeyCompromisePage(), mainMenu); putPage("/secure", new TestSecure(), null); putPage(Verify.PATH, new Verify(), null); @@ -386,7 +395,12 @@ public final class Gigi extends HttpServlet { resp.sendError(403); return; } - if (p.beforeTemplate(req, resp)) { + try { + if (p.beforeTemplate(req, resp)) { + return; + } + } catch (CSRFException e) { + resp.sendError(500, "CSRF invalid"); return; } HashMap vars = new HashMap(); @@ -430,12 +444,14 @@ public final class Gigi extends HttpServlet { } else { req.setAttribute(LINK_HOST, ServerConstants.getHostNamePort(Host.LINK)); } + vars.put(Gigi.LINK_HOST, req.getAttribute(Gigi.LINK_HOST)); if (currentAuthContext != null) { // TODO maybe move this information into the AuthContext object vars.put("loginMethod", req.getSession().getAttribute(LOGIN_METHOD)); vars.put("authContext", currentAuthContext); } + vars.put("appName", ServerConstants.getAppName()); resp.setContentType("text/html; charset=utf-8"); baseTemplate.output(resp.getWriter(), lang, vars); } else {