%
/*
* 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:
*
*/
// This initializes the RouterContext - must be the first thing
// i2pcontextId set in css.jsi
formhandler.setContextId(i2pcontextId);
// Prevents any saves via GET
formhandler.storeMethod(request.getMethod());
// Store the nonces for verification
String klass = formhandler.getClass().getName();
String nonceAttr1 = klass + ".nonce";
String nonceAttr2 = nonceAttr1 + "Prev";
String nonce1 = null;
try {
// Jetty doesn't seem to ISE here...
nonce1 = (String) session.getAttribute(nonceAttr1);
String nonce2 = (String) session.getAttribute(nonceAttr2);
formhandler.storeNonces(nonce1, nonce2);
} catch (IllegalStateException ise) {
// nonce1 will be null, removed in setAttibute below
}
String contentType = request.getContentType();
if (contentType != null && contentType.toLowerCase(java.util.Locale.US).startsWith( "multipart/form-data")) {
// For multipart/form-data, we must decode things enough to get the action and nonce
// so FormHandler will validate.
// The handler must get everything else through the wrapper. No other properties will be set.
// All parameters other than nonce and action must be retrieved through the wrapper.
// Warning, parameters are NOT XSS filtered.
net.i2p.servlet.RequestWrapper requestWrapper = new net.i2p.servlet.RequestWrapper(request);
String action = requestWrapper.getParameter("action");
if (action != null)
formhandler.setAction(action);
String nonce = requestWrapper.getParameter("nonce");
if (nonce != null)
formhandler.setNonce(nonce);
formhandler.setRequestWrapper(requestWrapper);
} else {
// 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());
%><%
}
%><%
// 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();
try {
// Jetty waits to ISE until here....
session.setAttribute(nonceAttr2, nonce1);
session.setAttribute(nonceAttr1, pageNonce);
} catch (IllegalStateException ise) {}
%>