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
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;
}
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 {
@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