summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java')
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java414
1 files changed, 222 insertions, 192 deletions
diff --git a/pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java b/pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
index 3e42d5ba..691d3e98 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
@@ -37,10 +37,13 @@ import com.netscape.cms.servlet.csadmin.Cert;
import com.netscape.cmsutil.crypto.Module;
/**
- * wizard?p=[panel number]&op=usage <= usage in xml wizard?p=[panel
- * number]&op=display wizard?p=[panel number]&op=next&...[additional
- * parameters]... wizard?p=[panel number]&op=apply wizard?p=[panel
- * number]&op=back wizard?op=menu return menu options
+ * wizard?p=[panel number]&op=usage <= usage in xml
+ * wizard?p=[panel number]&op=display
+ * wizard?p=[panel number]&op=next&...[additional parameters]...
+ * wizard?p=[panel number]&op=apply
+ * wizard?p=[panel number]&op=back
+ * wizard?op=menu
+ * return menu options
*/
public class WizardServlet extends VelocityServlet {
@@ -51,7 +54,8 @@ public class WizardServlet extends VelocityServlet {
private String name = null;
private Vector mPanels = new Vector();
- public void init(ServletConfig config) throws ServletException {
+ public void init(ServletConfig config) throws ServletException
+ {
super.init(config);
/* load sequence map */
@@ -60,32 +64,33 @@ public class WizardServlet extends VelocityServlet {
StringTokenizer st = new StringTokenizer(panels, ",");
int pno = 0;
while (st.hasMoreTokens()) {
- String p = st.nextToken();
- StringTokenizer st1 = new StringTokenizer(p, "=");
- String id = st1.nextToken();
- String pvalue = st1.nextToken();
- try {
- IWizardPanel panel = (IWizardPanel) Class.forName(pvalue)
- .newInstance();
- panel.init(this, config, pno, id);
- CMS.debug("WizardServlet: panel name=" + panel.getName());
- mPanels.addElement(panel);
- } catch (Exception e) {
- CMS.debug("WizardServlet: " + e.toString());
- }
- pno++;
+ String p = st.nextToken();
+ StringTokenizer st1 = new StringTokenizer(p, "=");
+ String id = st1.nextToken();
+ String pvalue = st1.nextToken();
+ try {
+ IWizardPanel panel = (IWizardPanel)Class.forName(pvalue).newInstance();
+ panel.init(this, config, pno, id);
+ CMS.debug("WizardServlet: panel name=" + panel.getName());
+ mPanels.addElement(panel);
+ } catch (Exception e) {
+ CMS.debug("WizardServlet: " + e.toString());
+ }
+ pno++;
}
CMS.debug("WizardServlet: done");
-
+
}
public void exposePanels(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context )
+ {
Enumeration e = mPanels.elements();
Vector panels = new Vector();
while (e.hasMoreElements()) {
- IWizardPanel p = (IWizardPanel) e.nextElement();
- panels.addElement(p);
+ IWizardPanel p = (IWizardPanel)e.nextElement();
+ panels.addElement(p);
}
context.put("panels", panels);
}
@@ -93,80 +98,84 @@ public class WizardServlet extends VelocityServlet {
/**
* Cleans up panels from a particular panel.
*/
- public void cleanUpFromPanel(int pno) throws IOException {
- /* panel number starts from zero */
- int s = mPanels.size();
- for (int i = pno; i < s; i++) {
- IWizardPanel panel = (IWizardPanel) mPanels.elementAt(i);
- panel.cleanUp();
- }
+ public void cleanUpFromPanel(int pno) throws IOException
+ {
+ /* panel number starts from zero */
+ int s = mPanels.size();
+ for (int i = pno; i < s; i++) {
+ IWizardPanel panel = (IWizardPanel)mPanels.elementAt(i);
+ panel.cleanUp();
+ }
}
- public IWizardPanel getPanelByNo(int p) {
- IWizardPanel panel = (IWizardPanel) mPanels.elementAt(p);
+ public IWizardPanel getPanelByNo(int p)
+ {
+ IWizardPanel panel = (IWizardPanel)mPanels.elementAt(p);
if (panel.shouldSkip()) {
- panel = getPanelByNo(p + 1);
+ panel = getPanelByNo(p+1);
}
return panel;
}
public Template displayPanel(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context )
+ {
CMS.debug("WizardServlet: in display");
int p = getPanelNo(request);
if (p == 0) {
- CMS.debug("WizardServlet: firstpanel");
- context.put("firstpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: firstpanel");
+ context.put("firstpanel", Boolean.TRUE);
}
if (p == (mPanels.size() - 1)) {
- CMS.debug("WizardServlet: lastpanel");
- context.put("lastpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: lastpanel");
+ context.put("lastpanel", Boolean.TRUE);
}
IWizardPanel panel = getPanelByNo(p);
CMS.debug("WizardServlet: panel=" + panel);
if (panel.showApplyButton() == true)
- context.put("showApplyButton", Boolean.TRUE);
+ context.put("showApplyButton", Boolean.TRUE);
else
- context.put("showApplyButton", Boolean.FALSE);
+ context.put("showApplyButton", Boolean.FALSE);
panel.display(request, response, context);
context.put("p", Integer.toString(panel.getPanelNo()));
try {
return Velocity.getTemplate("admin/console/config/wizard.vm");
- } catch (Exception e) {
+ } catch (Exception e) {
}
return null;
}
- public String xml_value_flatten(Object v) {
+ public String xml_value_flatten(Object v)
+ {
String ret = "";
if (v instanceof String) {
ret += v;
} else if (v instanceof Integer) {
- ret += ((Integer) v).toString();
+ ret += ((Integer)v).toString();
} else if (v instanceof Vector) {
ret += "<Vector>";
- Vector v1 = (Vector) v;
+ Vector v1 = (Vector)v;
Enumeration e = v1.elements();
StringBuffer sb = new StringBuffer();
while (e.hasMoreElements()) {
- sb.append(xml_value_flatten(e.nextElement()));
+ sb.append(xml_value_flatten(e.nextElement()));
}
ret += sb.toString();
ret += "</Vector>";
} else if (v instanceof Module) { // for hardware token
- Module m = (Module) v;
+ Module m = (Module)v;
ret += "<Module>";
ret += "<CommonName>" + m.getCommonName() + "</CommonName>";
- ret += "<UserFriendlyName>" + m.getUserFriendlyName()
- + "</UserFriendlyName>";
+ ret += "<UserFriendlyName>" + m.getUserFriendlyName() + "</UserFriendlyName>";
ret += "<ImagePath>" + m.getImagePath() + "</ImagePath>";
ret += "</Module>";
} else if (v instanceof Cert) {
- Cert m = (Cert) v;
+ Cert m = (Cert)v;
ret += "<CertReqPair>";
ret += "<Nickname>" + m.getNickname() + "</Nickname>";
ret += "<Tokenname>" + m.getTokenname() + "</Tokenname>";
@@ -178,7 +187,7 @@ public class WizardServlet extends VelocityServlet {
ret += "<KeyOption>" + m.getKeyOption() + "</KeyOption>";
ret += "</CertReqPair>";
} else if (v instanceof IWizardPanel) {
- IWizardPanel m = (IWizardPanel) v;
+ IWizardPanel m = (IWizardPanel)v;
ret += "<Panel>";
ret += "<Id>" + m.getId() + "</Id>";
ret += "<Name>" + m.getName() + "</Name>";
@@ -189,84 +198,89 @@ public class WizardServlet extends VelocityServlet {
return ret;
}
- public String xml_flatten(Context context) {
+ public String xml_flatten(Context context)
+ {
StringBuffer ret = new StringBuffer();
- Object o[] = context.getKeys();
- for (int i = 0; i < o.length; i++) {
- if (o[i] instanceof String) {
- String key = (String) o[i];
- if (key.startsWith("__")) {
- continue;
- }
- ret.append("<");
- ret.append(key);
- ret.append(">");
- if (key.equals("bindpwd")) {
- ret.append("(sensitive)");
- } else {
- Object v = context.get(key);
- ret.append(xml_value_flatten(v));
- }
- ret.append("</");
- ret.append(key);
- ret.append(">");
+ Object o[] = context.getKeys();
+ for (int i = 0; i < o.length; i ++) {
+ if (o[i] instanceof String) {
+ String key = (String)o[i];
+ if (key.startsWith("__")) {
+ continue;
+ }
+ ret.append("<");
+ ret.append(key);
+ ret.append(">");
+ if (key.equals("bindpwd")) {
+ ret.append("(sensitive)");
+ } else {
+ Object v = context.get(key);
+ ret.append(xml_value_flatten(v));
}
+ ret.append("</");
+ ret.append(key);
+ ret.append(">");
+ }
}
return ret.toString();
}
- public int getPanelNo(HttpServletRequest request) {
+ public int getPanelNo(HttpServletRequest request)
+ {
int p = 0;
-
- // panel number can be identified by either
- // panel no (p parameter) directly, or
- // panel name (panelname parameter).
+
+ // panel number can be identified by either
+ // panel no (p parameter) directly, or
+ // panel name (panelname parameter).
if (request.getParameter("panelname") != null) {
- String name = request.getParameter("panelname");
- for (int i = 0; i < mPanels.size(); i++) {
- IWizardPanel panel = (IWizardPanel) mPanels.elementAt(i);
- if (panel.getId().equals(name)) {
- return i;
- }
+ String name = request.getParameter("panelname");
+ for (int i = 0; i < mPanels.size(); i++) {
+ IWizardPanel panel = (IWizardPanel)mPanels.elementAt(i);
+ if (panel.getId().equals(name)) {
+ return i;
}
+ }
} else if (request.getParameter("p") != null) {
- p = Integer.parseInt(request.getParameter("p"));
+ p = Integer.parseInt(request.getParameter("p"));
}
return p;
}
- public String getNameFromPanelNo(int p) {
- IWizardPanel wp = (IWizardPanel) mPanels.elementAt(p);
- return wp.getId();
+ public String getNameFromPanelNo(int p)
+ {
+ IWizardPanel wp = (IWizardPanel)mPanels.elementAt(p);
+ return wp.getId();
}
- public IWizardPanel getPreviousPanel(int p) {
+ public IWizardPanel getPreviousPanel(int p)
+ {
CMS.debug("getPreviousPanel input p=" + p);
- IWizardPanel backpanel = (IWizardPanel) mPanels.elementAt(p - 1);
+ IWizardPanel backpanel = (IWizardPanel)mPanels.elementAt(p-1);
if (backpanel.isSubPanel()) {
- backpanel = (IWizardPanel) mPanels.elementAt(p - 1 - 1);
+ backpanel = (IWizardPanel)mPanels.elementAt(p-1-1);
}
while (backpanel.shouldSkip()) {
- backpanel = (IWizardPanel) mPanels
- .elementAt(backpanel.getPanelNo() - 1);
+ backpanel = (IWizardPanel)
+ mPanels.elementAt(backpanel.getPanelNo() - 1);
}
CMS.debug("getPreviousPanel output p=" + backpanel.getPanelNo());
return backpanel;
}
- public IWizardPanel getNextPanel(int p) {
+ public IWizardPanel getNextPanel(int p)
+ {
CMS.debug("getNextPanel input p=" + p);
- IWizardPanel panel = (IWizardPanel) mPanels.elementAt(p);
+ IWizardPanel panel = (IWizardPanel)mPanels.elementAt(p);
if (p == (mPanels.size() - 1)) {
p = p;
- } else if (panel.isSubPanel()) {
- if (panel.isLoopbackPanel()) {
- p = p - 1; // Login Panel is a loop back panel
- } else {
- p = p + 1;
- }
- } else if (panel.hasSubPanel()) {
- p = p + 2;
+ } else if(panel.isSubPanel()) {
+ if (panel.isLoopbackPanel()) {
+ p = p-1; // Login Panel is a loop back panel
+ } else {
+ p = p+1;
+ }
+ } else if (panel.hasSubPanel()) {
+ p = p + 2;
} else {
p = p + 1;
}
@@ -276,175 +290,191 @@ public class WizardServlet extends VelocityServlet {
}
public Template goApply(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context)
+ {
return goNextApply(request, response, context, true);
}
public Template goNext(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context )
+ {
return goNextApply(request, response, context, false);
}
/*
- * The parameter "stay" is used to indicate "apply" without moving to the
- * next panel
+ * The parameter "stay" is used to indicate "apply" without
+ * moving to the next panel
*/
public Template goNextApply(HttpServletRequest request,
- HttpServletResponse response, Context context, boolean stay) {
+ HttpServletResponse response,
+ Context context, boolean stay )
+ {
int p = getPanelNo(request);
if (stay == true)
CMS.debug("WizardServlet: in reply " + p);
else
CMS.debug("WizardServlet: in next " + p);
- IWizardPanel panel = (IWizardPanel) mPanels.elementAt(p);
+ IWizardPanel panel = (IWizardPanel)mPanels.elementAt(p);
try {
- panel.validate(request, response, context);
- try {
- panel.update(request, response, context);
- if (stay == true) { // "apply"
-
- if (panel.showApplyButton() == true)
- context.put("showApplyButton", Boolean.TRUE);
- else
- context.put("showApplyButton", Boolean.FALSE);
- panel.display(request, response, context);
- } else { // "next"
- IWizardPanel nextpanel = getNextPanel(p);
-
- if (nextpanel.showApplyButton() == true)
- context.put("showApplyButton", Boolean.TRUE);
- else
- context.put("showApplyButton", Boolean.FALSE);
- nextpanel.display(request, response, context);
- panel = nextpanel;
- }
- context.put("errorString", "");
- } catch (Exception e) {
- context.put("errorString", e.getMessage());
- panel.displayError(request, response, context);
+ panel.validate(request, response, context);
+ try {
+ panel.update(request, response, context);
+ if (stay == true) { // "apply"
+
+ if (panel.showApplyButton() == true)
+ context.put("showApplyButton", Boolean.TRUE);
+ else
+ context.put("showApplyButton", Boolean.FALSE);
+ panel.display(request, response, context);
+ } else { // "next"
+ IWizardPanel nextpanel = getNextPanel(p);
+
+ if (nextpanel.showApplyButton() == true)
+ context.put("showApplyButton", Boolean.TRUE);
+ else
+ context.put("showApplyButton", Boolean.FALSE);
+ nextpanel.display(request, response, context);
+ panel = nextpanel;
}
- } catch (IOException eee) {
- context.put("errorString", eee.getMessage());
+ context.put("errorString", "");
+ } catch (Exception e) {
+ context.put("errorString", e.getMessage());
panel.displayError(request, response, context);
+ }
+ } catch (IOException eee) {
+ context.put("errorString", eee.getMessage());
+ panel.displayError(request, response, context);
}
p = panel.getPanelNo();
CMS.debug("panel no=" + p);
CMS.debug("panel name=" + getNameFromPanelNo(p));
- CMS.debug("total number of panels=" + mPanels.size());
+ CMS.debug("total number of panels="+mPanels.size());
context.put("p", Integer.toString(p));
context.put("panelname", getNameFromPanelNo(p));
if (p == 0) {
- CMS.debug("WizardServlet: firstpanel");
- context.put("firstpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: firstpanel");
+ context.put("firstpanel", Boolean.TRUE);
}
if (p == (mPanels.size() - 1)) {
- CMS.debug("WizardServlet: lastpanel");
- context.put("lastpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: lastpanel");
+ context.put("lastpanel", Boolean.TRUE);
}
// this is where we handle the xml request
String xml = request.getParameter("xml");
if (xml != null && xml.equals("true")) {
- CMS.debug("WizardServlet: found xml");
-
- response.setContentType("application/xml");
- String xmlstr = xml_flatten(context);
- context.put("xml", xmlstr);
- try {
- return Velocity.getTemplate("admin/console/config/xml.vm");
- } catch (Exception e) {
- CMS.debug("Failing to get template" + e);
- }
+ CMS.debug("WizardServlet: found xml");
+
+ response.setContentType("application/xml");
+ String xmlstr = xml_flatten(context);
+ context.put("xml", xmlstr);
+ try {
+ return Velocity.getTemplate("admin/console/config/xml.vm");
+ } catch (Exception e) {
+ CMS.debug("Failing to get template" + e );
+ }
} else {
- try {
- return Velocity.getTemplate("admin/console/config/wizard.vm");
- } catch (Exception e) {
- CMS.debug("Failing to get template" + e);
- }
+ try {
+ return Velocity.getTemplate("admin/console/config/wizard.vm");
+ } catch (Exception e) {
+ CMS.debug("Failing to get template" + e );
+ }
}
return null;
}
public Template goBack(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context )
+ {
int p = getPanelNo(request);
CMS.debug("WizardServlet: in back " + p);
IWizardPanel backpanel = getPreviousPanel(p);
if (backpanel.showApplyButton() == true)
- context.put("showApplyButton", Boolean.TRUE);
+ context.put("showApplyButton", Boolean.TRUE);
else
- context.put("showApplyButton", Boolean.FALSE);
+ context.put("showApplyButton", Boolean.FALSE);
backpanel.display(request, response, context);
- context.put("p", Integer.toString(backpanel.getPanelNo()));
+ context.put("p", Integer.toString(backpanel.getPanelNo()));
context.put("panelname", getNameFromPanelNo(backpanel.getPanelNo()));
p = backpanel.getPanelNo();
if (p == 0) {
- CMS.debug("WizardServlet: firstpanel");
- context.put("firstpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: firstpanel");
+ context.put("firstpanel", Boolean.TRUE);
}
if (p == (mPanels.size() - 1)) {
- CMS.debug("WizardServlet: lastpanel");
- context.put("lastpanel", Boolean.TRUE);
+ CMS.debug("WizardServlet: lastpanel");
+ context.put("lastpanel", Boolean.TRUE);
}
try {
return Velocity.getTemplate("admin/console/config/wizard.vm");
- } catch (Exception e) {
+ } catch (Exception e) {
}
return null;
}
public boolean authenticate(HttpServletRequest request,
- HttpServletResponse response, Context context) {
- String pin = (String) request.getSession().getAttribute("pin");
- if (pin == null) {
- try {
- response.sendRedirect("login");
- } catch (IOException e) {
- }
- return false;
+ HttpServletResponse response,
+ Context context ) {
+ String pin = (String)request.getSession().getAttribute("pin");
+ if (pin == null) {
+ try {
+ response.sendRedirect("login");
+ } catch (IOException e) {
}
- return true;
+ return false;
+ }
+ return true;
}
- public void outputHttpParameters(HttpServletRequest httpReq) {
+ public void outputHttpParameters(HttpServletRequest httpReq)
+ {
CMS.debug("WizardServlet:service() uri = " + httpReq.getRequestURI());
Enumeration paramNames = httpReq.getParameterNames();
while (paramNames.hasMoreElements()) {
- String pn = (String) paramNames.nextElement();
+ String pn = (String)paramNames.nextElement();
// added this facility so that password can be hidden,
- // all sensitive parameters should be prefixed with
+ // all sensitive parameters should be prefixed with
// __ (double underscores); however, in the event that
// a security parameter slips through, we perform multiple
// additional checks to insure that it is NOT displayed
- if (pn.startsWith("__") || pn.endsWith("password")
- || pn.endsWith("passwd") || pn.endsWith("pwd")
- || pn.equalsIgnoreCase("admin_password_again")
- || pn.equalsIgnoreCase("directoryManagerPwd")
- || pn.equalsIgnoreCase("bindpassword")
- || pn.equalsIgnoreCase("bindpwd")
- || pn.equalsIgnoreCase("passwd")
- || pn.equalsIgnoreCase("password")
- || pn.equalsIgnoreCase("pin") || pn.equalsIgnoreCase("pwd")
- || pn.equalsIgnoreCase("pwdagain")
- || pn.equalsIgnoreCase("uPasswd")) {
- CMS.debug("WizardServlet::service() param name='" + pn
- + "' value='(sensitive)'");
+ if( pn.startsWith("__") ||
+ pn.endsWith("password") ||
+ pn.endsWith("passwd") ||
+ pn.endsWith("pwd") ||
+ pn.equalsIgnoreCase("admin_password_again") ||
+ pn.equalsIgnoreCase("directoryManagerPwd") ||
+ pn.equalsIgnoreCase("bindpassword") ||
+ pn.equalsIgnoreCase("bindpwd") ||
+ pn.equalsIgnoreCase("passwd") ||
+ pn.equalsIgnoreCase("password") ||
+ pn.equalsIgnoreCase("pin") ||
+ pn.equalsIgnoreCase("pwd") ||
+ pn.equalsIgnoreCase("pwdagain") ||
+ pn.equalsIgnoreCase("uPasswd") ) {
+ CMS.debug("WizardServlet::service() param name='" + pn +
+ "' value='(sensitive)'" );
} else {
- CMS.debug("WizardServlet::service() param name='" + pn
- + "' value='" + httpReq.getParameter(pn) + "'");
+ CMS.debug("WizardServlet::service() param name='" + pn +
+ "' value='" + httpReq.getParameter(pn) + "'" );
}
}
}
+
public Template handleRequest(HttpServletRequest request,
- HttpServletResponse response, Context context) {
+ HttpServletResponse response,
+ Context context )
+ {
CMS.debug("WizardServlet: process");
- if (CMS.debugOn()) {
- outputHttpParameters(request);
+ if (CMS.debugOn()) {
+ outputHttpParameters(request);
}
if (!authenticate(request, response, context)) {
@@ -454,7 +484,7 @@ public class WizardServlet extends VelocityServlet {
String op = request.getParameter("op"); /* operation */
if (op == null) {
- op = "display";
+ op = "display";
}
CMS.debug("WizardServlet: op=" + op);
CMS.debug("WizardServlet: size=" + mPanels.size());