X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigi.java;h=717865454ee4bba7a39001bd0467d1d74e1ae3f8;hb=341ed1dbc2f8cc8cedb50b12914aa113d12958ee;hp=7aa26d87ef70a0752907f818339c07f60d260318;hpb=3ad481bf50a3562142f3acd882e669acc9bc3f88;p=gigi.git
diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java
index 7aa26d87..71786545 100644
--- a/src/org/cacert/gigi/Gigi.java
+++ b/src/org/cacert/gigi/Gigi.java
@@ -1,7 +1,18 @@
package org.cacert.gigi;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.security.KeyStore;
import java.security.cert.X509Certificate;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -9,59 +20,445 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-public class Gigi extends HttpServlet {
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- X509Certificate[] cert = (X509Certificate[]) req
- .getAttribute("javax.servlet.request.X509Certificate");
- HttpSession hs = req.getSession(false);
- if (hs == null || !((Boolean) hs.getAttribute("loggedin"))) {
- if (cert != null) {
- tryAuthWithCertificate(req, cert[0]);
- hs = req.getSession(false);
- }
- }
- if (req.getMethod().equals("POST") && req.getPathInfo() != null
- && req.getPathInfo().equals("/login")) {
- authWithUnpw(req);
- resp.sendRedirect("/");
- return;
- }
- if (req.getPathInfo() != null && req.getPathInfo().equals("/logout")) {
- if (hs != null) {
- hs.setAttribute("loggedin", false);
- hs.invalidate();
- }
- authWithUnpw(req);
- resp.sendRedirect("/");
- return;
- }
-
- if (hs == null || !((Boolean) hs.getAttribute("loggedin"))) {
- resp.setContentType("text/html");
- resp.getWriter().println("Access denied. Sending login form.");
- resp.getWriter()
- .println(
- "
");
- return;
- }
- resp.getWriter().println("Access granted.");
-
- }
- private void authWithUnpw(HttpServletRequest req) {
- String un = req.getParameter("username");
- String pw = req.getParameter("password");
- // TODO dummy password check if (un.equals(pw)) {
- HttpSession hs = req.getSession();
- hs.setAttribute("loggedin", true);
- }
- private void tryAuthWithCertificate(HttpServletRequest req,
- X509Certificate x509Certificate) {
- // TODO ckeck if certificate is valid
- HttpSession hs = req.getSession();
- hs.setAttribute("loggedin", true);
- }
+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.localisation.Language;
+import org.cacert.gigi.output.Menu;
+import org.cacert.gigi.output.MenuCollector;
+import org.cacert.gigi.output.PageMenuItem;
+import org.cacert.gigi.output.SimpleMenuItem;
+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;
+import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.pages.PasswordResetPage;
+import org.cacert.gigi.pages.RootCertPage;
+import org.cacert.gigi.pages.StaticPage;
+import org.cacert.gigi.pages.TestSecure;
+import org.cacert.gigi.pages.Verify;
+import org.cacert.gigi.pages.account.ChangePasswordPage;
+import org.cacert.gigi.pages.account.History;
+import org.cacert.gigi.pages.account.MyDetails;
+import org.cacert.gigi.pages.account.UserTrainings;
+import org.cacert.gigi.pages.account.certs.CertificateAdd;
+import org.cacert.gigi.pages.account.certs.Certificates;
+import org.cacert.gigi.pages.account.domain.DomainOverview;
+import org.cacert.gigi.pages.account.mail.MailOverview;
+import org.cacert.gigi.pages.admin.TTPAdminPage;
+import org.cacert.gigi.pages.admin.support.FindDomainPage;
+import org.cacert.gigi.pages.admin.support.FindUserPage;
+import org.cacert.gigi.pages.admin.support.SupportEnterTicketPage;
+import org.cacert.gigi.pages.admin.support.SupportUserDetailsPage;
+import org.cacert.gigi.pages.error.AccessDenied;
+import org.cacert.gigi.pages.error.PageNotFound;
+import org.cacert.gigi.pages.main.RegisterPage;
+import org.cacert.gigi.pages.orga.CreateOrgPage;
+import org.cacert.gigi.pages.orga.ViewOrgPage;
+import org.cacert.gigi.pages.wot.AssurePage;
+import org.cacert.gigi.pages.wot.MyListingPage;
+import org.cacert.gigi.pages.wot.MyPoints;
+import org.cacert.gigi.pages.wot.RequestTTPPage;
+import org.cacert.gigi.ping.PingerDaemon;
+import org.cacert.gigi.util.AuthorizationContext;
+import org.cacert.gigi.util.ServerConstants;
+
+public final class Gigi extends HttpServlet {
+
+ private class MenuBuilder {
+
+ private LinkedList