X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FForm.java;h=d321fc31238f76c151c4aae5cc74991ce9c1e051;hp=69fb22878e3fa6a76b8944e8c0d586c62717d870;hb=2824d1c165c501e2f3a8809044788b33b81f478a;hpb=8ef6a07673d3f52d9cb72b20f2560f12a6727459 diff --git a/src/org/cacert/gigi/output/Form.java b/src/org/cacert/gigi/output/Form.java index 69fb2287..d321fc31 100644 --- a/src/org/cacert/gigi/output/Form.java +++ b/src/org/cacert/gigi/output/Form.java @@ -12,14 +12,15 @@ import org.cacert.gigi.util.RandomToken; public abstract class Form implements Outputable { String csrf; + public Form() { csrf = RandomToken.generateToken(32); } public abstract boolean submit(PrintWriter out, HttpServletRequest req); + @Override - public final void output(PrintWriter out, Language l, - Map vars) { + public final void output(PrintWriter out, Language l, Map vars) { out.println("
"); outputContent(out, l, vars); out.print("
"); } - protected abstract void outputContent(PrintWriter out, Language l, - Map vars); + protected abstract void outputContent(PrintWriter out, Language l, Map vars); protected void outputError(PrintWriter out, ServletRequest req, String text) { out.print("
"); @@ -39,6 +39,7 @@ public abstract class Form implements Outputable { protected String getCSRFToken() { return csrf; } + protected void checkCSRF(HttpServletRequest req) { if (!csrf.equals(req.getParameter("csrf"))) { throw new CSRFError();