X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigi.java;h=0cf0c62cc8739dfc8cc37bb85aef2ef52ba8bb0b;hb=f92f284f3a80e1f8fd87d2cc63288e1f1bbfeb9d;hp=5cee3a4c2a8d010accba7082ff3ae8da4a705ea6;hpb=6aa2a2b2b90e9f05386f7fe1bcc831a6a574a0f6;p=gigi.git diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 5cee3a4c..0cf0c62c 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -1,7 +1,12 @@ package org.cacert.gigi; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStreamReader; import java.security.cert.X509Certificate; +import java.util.Calendar; import java.util.HashMap; import javax.servlet.ServletException; @@ -13,15 +18,31 @@ import javax.servlet.http.HttpSession; import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.MainPage; import org.cacert.gigi.pages.Page; +import org.eclipse.jetty.util.log.Log; public class Gigi extends HttpServlet { + private static final long serialVersionUID = -6386785421902852904L; + private String[] baseTemplate; private HashMap pages = new HashMap(); @Override public void init() throws ServletException { pages.put("/login", new LoginPage("CACert - Login")); pages.put("/", new MainPage("CACert - Home")); + String templ = ""; + try { + BufferedReader reader = new BufferedReader(new InputStreamReader( + new FileInputStream(new File("templates/base.html")))); + String tmp; + while ((tmp = reader.readLine()) != null) { + templ += tmp; + } + baseTemplate = templ.split("\\$content\\$"); + } catch (Exception e) { + Log.getLogger(Gigi.class).warn("Error loading template!", e); + } super.init(); + } @Override @@ -63,14 +84,27 @@ public class Gigi extends HttpServlet { return; } if (pages.containsKey(req.getPathInfo())) { + String b0 = baseTemplate[0]; Page p = pages.get(req.getPathInfo()); + b0 = makeDynTempl(b0, p); + resp.setContentType("text/html"); + resp.getWriter().print(b0); p.doGet(req, resp); + String b1 = baseTemplate[1]; + b1 = makeDynTempl(b1, p); + resp.getWriter().print(b1); } else { resp.sendError(404, "Page not found."); } } + private String makeDynTempl(String in, Page p) { + int year = Calendar.getInstance().get(Calendar.YEAR); + in = in.replaceAll("\\$title\\$", p.getTitle()); + in = in.replaceAll("\\$year\\$", year + ""); + return in; + } private void authWithUnpw(HttpServletRequest req) { String un = req.getParameter("username"); String pw = req.getParameter("password");