From 429739837ba46a5736ce5a4fe7d19f396bbc236c Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sat, 20 Oct 2012 20:52:45 +0000 Subject: [PATCH] * Console: - Consolidate all the jsp formhandler boilerplate in the new formhandler.jsi, in preparation for further improvements --- apps/routerconsole/jsp/config.jsp | 7 ++--- apps/routerconsole/jsp/configadvanced.jsp | 7 ++--- apps/routerconsole/jsp/configclients.jsp | 10 +------ apps/routerconsole/jsp/confighome.jsp | 9 +------ apps/routerconsole/jsp/configkeyring.jsp | 7 ++--- apps/routerconsole/jsp/configlogging.jsp | 7 ++--- apps/routerconsole/jsp/confignet.jsp | 7 ++--- apps/routerconsole/jsp/configpeer.jsp | 10 ++----- apps/routerconsole/jsp/configreseed.jsp | 9 ++----- apps/routerconsole/jsp/configservice.jsp | 7 ++--- apps/routerconsole/jsp/configsidebar.jsp | 9 +------ apps/routerconsole/jsp/configstats.jsp | 8 ++---- apps/routerconsole/jsp/configtunnels.jsp | 10 ++----- apps/routerconsole/jsp/configui.jsp | 7 +---- apps/routerconsole/jsp/configupdate.jsp | 7 ++--- apps/routerconsole/jsp/formhandler.jsi | 33 +++++++++++++++++++++++ 16 files changed, 59 insertions(+), 95 deletions(-) create mode 100644 apps/routerconsole/jsp/formhandler.jsi diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp index 0d56b5f59d..538fb8a5f2 100644 --- a/apps/routerconsole/jsp/config.jsp +++ b/apps/routerconsole/jsp/config.jsp @@ -19,13 +19,10 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>"> <input type="hidden" name="action" value="blah" > <input type="hidden" name="ratesOnly" value="1" > <h3><%=intl._("Bandwidth limiter")%></h3><p> diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp index 53a8b227f5..d8a19e3505 100644 --- a/apps/routerconsole/jsp/configadvanced.jsp +++ b/apps/routerconsole/jsp/configadvanced.jsp @@ -21,14 +21,11 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> <div class="wideload"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="action" value="blah" > <h3><%=intl._("Advanced I2P Configuration")%></h3> <textarea rows="32" cols="60" name="config" wrap="off" spellcheck="false"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br><hr> diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp index 13a4d6f1ba..3d0cf7cda6 100644 --- a/apps/routerconsole/jsp/configclients.jsp +++ b/apps/routerconsole/jsp/configclients.jsp @@ -25,16 +25,8 @@ input.default { width: 1px; height: 1px; visibility: hidden; } <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:setProperty name="formhandler" property="action" value="<%=request.getParameter(\"action\")%>" /> - <jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter(\"nonce\")%>" /> - <jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> -<% - String pageNonce = formhandler.getNewNonce(); -%> <h3><%=intl._("Client Configuration")%></h3><p> <%=intl._("The Java clients listed below are started by the router and run in the same JVM.")%> </p><div class="wideload"> diff --git a/apps/routerconsole/jsp/confighome.jsp b/apps/routerconsole/jsp/confighome.jsp index b8296fcbbb..6be2d9d2e9 100644 --- a/apps/routerconsole/jsp/confighome.jsp +++ b/apps/routerconsole/jsp/confighome.jsp @@ -22,14 +22,7 @@ input.default { <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigHomeHandler" id="formhandler" scope="request" /> -<% formhandler.storeMethod(request.getMethod()); %> -<jsp:setProperty name="formhandler" property="*" /> -<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> -<jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> -<jsp:getProperty name="formhandler" property="allMessages" /> -<% - String pageNonce = formhandler.getNewNonce(); -%> +<%@include file="formhandler.jsi" %> <jsp:useBean class="net.i2p.router.web.HomeHelper" id="homehelper" scope="request" /> <jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp index e8b4089371..b2f5ef657c 100644 --- a/apps/routerconsole/jsp/configkeyring.jsp +++ b/apps/routerconsole/jsp/configkeyring.jsp @@ -15,10 +15,7 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigKeyringHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigKeyringHelper" id="keyringhelper" scope="request" /> <jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <div class="configure"><h2><%=intl._("Keyring")%></h2><p> @@ -29,7 +26,7 @@ </div> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <h3><%=intl._("Manual Keyring Addition")%></h3><p> <%=intl._("Enter keys for encrypted remote destinations here.")%> <%=intl._("Keys for local destinations must be entered on the")%> <a href="i2ptunnel/"><%=intl._("I2PTunnel page")%></a>. diff --git a/apps/routerconsole/jsp/configlogging.jsp b/apps/routerconsole/jsp/configlogging.jsp index c6f3ed945a..837ed81b8a 100644 --- a/apps/routerconsole/jsp/configlogging.jsp +++ b/apps/routerconsole/jsp/configlogging.jsp @@ -18,13 +18,10 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="action" value="blah" > <h3><%=intl._("Configure I2P Logging Options")%></h3> <div class="wideload"> diff --git a/apps/routerconsole/jsp/confignet.jsp b/apps/routerconsole/jsp/confignet.jsp index 7fb74500d9..72de18c4f6 100644 --- a/apps/routerconsole/jsp/confignet.jsp +++ b/apps/routerconsole/jsp/confignet.jsp @@ -18,13 +18,10 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="action" value="blah" > <h3><%=intl._("IP and Transport Configuration")%></h3><p> <img src="/themes/console/images/itoopie_xsm.png" alt=""> diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp index 9952db5534..b3aed01e6a 100644 --- a/apps/routerconsole/jsp/configpeer.jsp +++ b/apps/routerconsole/jsp/configpeer.jsp @@ -15,13 +15,7 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigPeerHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> - - - +<%@include file="formhandler.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigPeerHelper" id="peerhelper" scope="request" /> <jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> @@ -31,7 +25,7 @@ %> <div class="configure"> <form action="configpeer" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <a name="sh"> </a> <a name="unsh"> </a> <a name="bonus"> </a> diff --git a/apps/routerconsole/jsp/configreseed.jsp b/apps/routerconsole/jsp/configreseed.jsp index 39df228c69..c83ed389dd 100644 --- a/apps/routerconsole/jsp/configreseed.jsp +++ b/apps/routerconsole/jsp/configreseed.jsp @@ -18,14 +18,9 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigReseedHandler" id="formhandler" scope="request" /> -<% formhandler.storeMethod(request.getMethod()); %> -<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> -<jsp:setProperty name="formhandler" property="action" value="<%=request.getParameter(\"action\")%>" /> -<jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter(\"nonce\")%>" /> -<jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> -<jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"><form action="" method="POST"> -<input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > +<input type="hidden" name="nonce" value="<%=pageNonce%>" > <h3><%=intl._("Reseeding Configuration")%></h3> <p><%=intl._("Reseeding is the bootstrapping process used to find other routers when you first install I2P, or when your router has too few router references remaining.")%> <%=intl._("If reseeding has failed, you should first check your network connection.")%> diff --git a/apps/routerconsole/jsp/configservice.jsp b/apps/routerconsole/jsp/configservice.jsp index 303fa4d31c..c6711cc43c 100644 --- a/apps/routerconsole/jsp/configservice.jsp +++ b/apps/routerconsole/jsp/configservice.jsp @@ -15,13 +15,10 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigServiceHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <h3><%=intl._("Shutdown the router")%></h3> <p><%=intl._("Graceful shutdown lets the router satisfy the agreements it has already made before shutting down, but may take a few minutes.")%> <%=intl._("If you need to kill the router immediately, that option is available as well.")%></p> diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp index 074fcfda30..129feaa107 100644 --- a/apps/routerconsole/jsp/configsidebar.jsp +++ b/apps/routerconsole/jsp/configsidebar.jsp @@ -22,17 +22,10 @@ input.default { <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigSummaryHandler" id="formhandler" scope="request" /> -<% formhandler.storeMethod(request.getMethod()); %> -<jsp:setProperty name="formhandler" property="*" /> -<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> -<jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> +<%@include file="formhandler.jsi" %> <% formhandler.setMovingAction(); %> -<jsp:getProperty name="formhandler" property="allMessages" /> -<% - String pageNonce = formhandler.getNewNonce(); -%> <jsp:useBean class="net.i2p.router.web.SummaryHelper" id="summaryhelper" scope="request" /> <jsp:setProperty name="summaryhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp index 8a70c84bc4..d6bd67c1e5 100644 --- a/apps/routerconsole/jsp/configstats.jsp +++ b/apps/routerconsole/jsp/configstats.jsp @@ -66,17 +66,13 @@ function toggleAll(category) <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> - +<%@include file="formhandler.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" /> <jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <div class="configure"> <form id="statsForm" name="statsForm" action="" method="POST"> <input type="hidden" name="action" value="foo" > - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <h3><%=intl._("Configure I2P Stat Collection")%></h3> <p><%=intl._("Enable full stats?")%> <input type="checkbox" class="optbox" name="isFull" value="true" <% diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp index e2eab6658f..de82f0027d 100644 --- a/apps/routerconsole/jsp/configtunnels.jsp +++ b/apps/routerconsole/jsp/configtunnels.jsp @@ -17,13 +17,7 @@ <div class="main" id="main"> <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:setProperty name="formhandler" property="shouldsave" value="<%=request.getParameter(\"shouldsave\")%>" /> - <jsp:setProperty name="formhandler" property="action" value="<%=request.getParameter(\"action\")%>" /> - <jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter(\"nonce\")%>" /> - <jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"><p> <%=intl._("NOTE")%>: <%=intl._("The default settings work for most people.")%> @@ -33,7 +27,7 @@ <%=intl._("Change these settings with care, and adjust them if you have problems.")%> <div class="wideload"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <input type="hidden" name="action" value="blah" > <jsp:getProperty name="tunnelshelper" property="form" /> <%=intl._("Note")%>: <%=intl._("Exploratory tunnel setting changes are stored in the router.config file.")%> diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp index 3177142da9..f1555a8920 100644 --- a/apps/routerconsole/jsp/configui.jsp +++ b/apps/routerconsole/jsp/configui.jsp @@ -28,11 +28,7 @@ input.default { <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigUIHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <div class="configure"><div class="topshimten"><h3><%=uihelper._("Router Console Theme")%></h3></div> <form action="" method="POST"> <% @@ -42,7 +38,6 @@ input.default { consoleNonce = Long.toString(new java.util.Random().nextLong()); System.setProperty("router.consoleNonce", consoleNonce); } - String pageNonce = formhandler.getNewNonce(); %> <input type="hidden" name="consoleNonce" value="<%=consoleNonce%>" > <input type="hidden" name="nonce" value="<%=pageNonce%>" > diff --git a/apps/routerconsole/jsp/configupdate.jsp b/apps/routerconsole/jsp/configupdate.jsp index a792bb07b3..2d2e54d257 100644 --- a/apps/routerconsole/jsp/configupdate.jsp +++ b/apps/routerconsole/jsp/configupdate.jsp @@ -16,17 +16,14 @@ <%@include file="confignav.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" /> - <% formhandler.storeMethod(request.getMethod()); %> - <jsp:setProperty name="formhandler" property="*" /> - <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> - <jsp:getProperty name="formhandler" property="allMessages" /> +<%@include file="formhandler.jsi" %> <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" /> <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /> <div class="messages"> <jsp:getProperty name="updatehelper" property="newsStatus" /></div> <div class="configure"> <form action="" method="POST"> - <input type="hidden" name="nonce" value="<jsp:getProperty name="formhandler" property="newNonce" />" > + <input type="hidden" name="nonce" value="<%=pageNonce%>" > <% /* set hidden default */ %> <input type="submit" name="action" value="" style="display:none" > <% if (updatehelper.canInstall()) { %> diff --git a/apps/routerconsole/jsp/formhandler.jsi b/apps/routerconsole/jsp/formhandler.jsi new file mode 100644 index 0000000000..a773dda8d5 --- /dev/null +++ b/apps/routerconsole/jsp/formhandler.jsi @@ -0,0 +1,33 @@ +<% + /* + * Does the standard setup for all form handlers, then + * displays the message box (which drives the form processing). + * + * Included ~15 times, keep whitespace to a minimum + * + * Include this directly after the line: + * <jsp:useBean class="net.i2p.router.web.xxxHandler" id="formhandler" scope="request" /> + */ + + // This initializes the RouterContext - must be the first thing + formhandler.setContextId((String)session.getAttribute("i2p.contextId")); + + // Prevents any saves via GET + formhandler.storeMethod(request.getMethod()); + + // Put all the params in the map, some handlers use this instead of individual setters + // We also call all of the setters below. + formhandler.setSettings(request.getParameterMap()); + +%> +<jsp:setProperty name="formhandler" property="*" /> +<jsp:getProperty name="formhandler" property="allMessages" /> +<% + + // Only call this once per page, do not getProperty("newNonce") elsewhere, + // use the variable instead. + // This shuffles down the nonces, so it must be after getAllMessages() above, + // since it does the form validation. + String pageNonce = formhandler.getNewNonce(); + +%> -- GitLab