]> WPIA git - gigi.git/commitdiff
fix: better menu links, better certificate login links
authorFelix Dörre <felix@dogcraft.de>
Wed, 4 Nov 2015 16:44:11 +0000 (17:44 +0100)
committerFelix Dörre <felix@dogcraft.de>
Wed, 4 Nov 2015 16:56:38 +0000 (17:56 +0100)
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/output/PageMenuItem.java
src/org/cacert/gigi/pages/LoginPage.java

index c5ee8cd3e6f9b46a2acf9f14e10f9528af156d85..ac7ff60e4637c310f8ed08912d7fc5d35a601aca 100644 (file)
@@ -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
index 852ea4b02ae9e44204a27b2c296fbeb385e5b034..f331e3c643ea45949dcba946216f5527261ec216 100644 (file)
@@ -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;
     }
 
index 3188b1370529d08214abe4cdab9bd8b261620d24..8129715a99795b6f8f45f6b105008731af56d2ab 100644 (file)
@@ -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<String, Object>());
+        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<String, Object>());
+        }
     }
 
     @Override