]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/Gigi.java
Adding automated system bootup tests.
[gigi.git] / src / org / cacert / gigi / Gigi.java
index 0420eb7f197cbd589eccd3abce9e30ad99e09eea..ba12cea2b6949e5f7982e9c748ff4f9475f5cd66 100644 (file)
@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.Calendar;
 import java.util.HashMap;
+import java.util.Properties;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -14,6 +15,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
+import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.MainPage;
 import org.cacert.gigi.pages.Page;
@@ -30,6 +33,10 @@ public class Gigi extends HttpServlet {
        private String[] baseTemplate;
        private HashMap<String, Page> pages = new HashMap<String, Page>();
 
+       public Gigi(Properties conf) {
+               EmailProvider.init(conf);
+               DatabaseConnection.init(conf);
+       }
        @Override
        public void init() throws ServletException {
                pages.put("/login", new LoginPage("CACert - Login"));
@@ -68,9 +75,15 @@ public class Gigi extends HttpServlet {
                if (pages.containsKey(req.getPathInfo())) {
                        Page p = pages.get(req.getPathInfo());
                        if (p.needsLogin() && hs.getAttribute("loggedin") == null) {
+                               String request = req.getPathInfo();
+                               request = request.split("\\?")[0];
+                               hs.setAttribute(LoginPage.LOGIN_RETURNPATH, request);
                                resp.sendRedirect("/login");
                                return;
                        }
+                       if (p.beforeTemplate(req, resp)) {
+                               return;
+                       }
 
                        String b0 = baseTemplate[0];
                        b0 = makeDynTempl(b0, p);