From ac2d612bc322ee04e31b611a71765e7ae3f1dcf3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Wed, 4 Nov 2015 17:44:11 +0100 Subject: [PATCH] fix: better menu links, better certificate login links --- src/org/cacert/gigi/Gigi.java | 9 ++++++++- src/org/cacert/gigi/output/PageMenuItem.java | 4 ++-- src/org/cacert/gigi/pages/LoginPage.java | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index c5ee8cd3..ac7ff60e 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -106,7 +106,14 @@ public class Gigi extends HttpServlet { public Menu generateMenu() throws ServletException { putPage("/denied", new AccessDenied(), null); putPage("/error", new PageNotFound(), null); - putPage("/login", new LoginPage("Password Login"), "CAcert.org"); + putPage("/login", new LoginPage("Password Login"), null); + getMenu("CAcert.org").addItem(new SimpleMenuItem("https://" + ServerConstants.getWwwHostNamePort() + "/login", "Password Login") { + + @Override + public boolean isPermitted(AuthorizationContext ac) { + return ac == null; + } + }); getMenu("CAcert.org").addItem(new SimpleMenuItem("https://" + ServerConstants.getSecureHostNamePort() + "/login", "Certificate Login") { @Override diff --git a/src/org/cacert/gigi/output/PageMenuItem.java b/src/org/cacert/gigi/output/PageMenuItem.java index 852ea4b0..f331e3c6 100644 --- a/src/org/cacert/gigi/output/PageMenuItem.java +++ b/src/org/cacert/gigi/output/PageMenuItem.java @@ -2,14 +2,14 @@ package org.cacert.gigi.output; import org.cacert.gigi.pages.Page; import org.cacert.gigi.util.AuthorizationContext; -import org.cacert.gigi.util.ServerConstants; public class PageMenuItem extends SimpleMenuItem { private Page p; public PageMenuItem(Page p, String path) { - super("https://" + ServerConstants.getWwwHostNamePortSecure() + path, p.getTitle()); + // "https://" + ServerConstants.getWwwHostNamePortSecure() + + super(path, p.getTitle()); this.p = p; } diff --git a/src/org/cacert/gigi/pages/LoginPage.java b/src/org/cacert/gigi/pages/LoginPage.java index 3188b137..8129715a 100644 --- a/src/org/cacert/gigi/pages/LoginPage.java +++ b/src/org/cacert/gigi/pages/LoginPage.java @@ -22,6 +22,7 @@ import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.util.AuthorizationContext; import org.cacert.gigi.util.PasswordHash; +import org.cacert.gigi.util.ServerConstants; public class LoginPage extends Page { @@ -52,7 +53,11 @@ public class LoginPage extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - new LoginForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + if (req.getHeader("Host").equals(ServerConstants.getSecureHostNamePort())) { + resp.getWriter().println(getLanguage(req).getTranslation("Authentication with certificate failed. Try another certificate or use a password.")); + } else { + new LoginForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + } } @Override -- 2.39.2