summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java')
-rw-r--r--base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java489
1 files changed, 0 insertions, 489 deletions
diff --git a/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java b/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
deleted file mode 100644
index 6deab6bc0..000000000
--- a/base/common/src/com/netscape/cms/servlet/wizard/WizardServlet.java
+++ /dev/null
@@ -1,489 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.wizard;
-
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.velocity.Template;
-import org.apache.velocity.app.Velocity;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.servlet.VelocityServlet;
-
-import com.netscape.certsrv.apps.CMS;
-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
- */
-@SuppressWarnings("deprecation")
-public class WizardServlet extends VelocityServlet {
-
- /**
- *
- */
- private static final long serialVersionUID = -4513510177445656799L;
- private String name = null;
- private Vector<IWizardPanel> mPanels = new Vector<IWizardPanel>();
-
- public void init(ServletConfig config) throws ServletException {
- super.init(config);
-
- /* load sequence map */
- name = config.getInitParameter("name");
- String panels = config.getInitParameter("panels");
- 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++;
- }
- CMS.debug("WizardServlet: done");
-
- }
-
- public void exposePanels(HttpServletRequest request,
- HttpServletResponse response,
- Context context) {
- Enumeration<IWizardPanel> e = mPanels.elements();
- Vector<IWizardPanel> panels = new Vector<IWizardPanel>();
- while (e.hasMoreElements()) {
- IWizardPanel p = e.nextElement();
- panels.addElement(p);
- }
- context.put("panels", panels);
- }
-
- /**
- * 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 = mPanels.elementAt(i);
- panel.cleanUp();
- }
- }
-
- public IWizardPanel getPanelByNo(int p) {
- IWizardPanel panel = mPanels.elementAt(p);
- if (panel.shouldSkip()) {
- panel = getPanelByNo(p + 1);
- }
- return panel;
- }
-
- public Template displayPanel(HttpServletRequest request,
- 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);
- }
- if (p == (mPanels.size() - 1)) {
- 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);
- else
- 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) {
- }
- return null;
- }
-
- public String xml_value_flatten(Object v) {
- String ret = "";
- if (v instanceof String) {
- ret += v;
- } else if (v instanceof Integer) {
- ret += ((Integer) v).toString();
- } else if (v instanceof Vector) {
- ret += "<Vector>";
- Vector<?> v1 = (Vector<?>) v;
- Enumeration<?> e = v1.elements();
- StringBuffer sb = new StringBuffer();
- while (e.hasMoreElements()) {
- sb.append(xml_value_flatten(e.nextElement()));
- }
- ret += sb.toString();
- ret += "</Vector>";
- } else if (v instanceof Module) { // for hardware token
- Module m = (Module) v;
- ret += "<Module>";
- ret += "<CommonName>" + m.getCommonName() + "</CommonName>";
- ret += "<UserFriendlyName>" + m.getUserFriendlyName() + "</UserFriendlyName>";
- ret += "<ImagePath>" + m.getImagePath() + "</ImagePath>";
- ret += "</Module>";
- } else if (v instanceof Cert) {
- Cert m = (Cert) v;
- ret += "<CertReqPair>";
- ret += "<Nickname>" + m.getNickname() + "</Nickname>";
- ret += "<Tokenname>" + m.getTokenname() + "</Tokenname>";
- ret += "<Request>" + m.getRequest() + "</Request>";
- ret += "<Certificate>" + m.getCert() + "</Certificate>";
- ret += "<Type>" + m.getType() + "</Type>";
- ret += "<DN>" + m.getDN() + "</DN>";
- ret += "<CertPP>" + m.getCertpp() + "</CertPP>";
- ret += "<KeyOption>" + m.getKeyOption() + "</KeyOption>";
- ret += "</CertReqPair>";
- } else if (v instanceof IWizardPanel) {
- IWizardPanel m = (IWizardPanel) v;
- ret += "<Panel>";
- ret += "<Id>" + m.getId() + "</Id>";
- ret += "<Name>" + m.getName() + "</Name>";
- ret += "</Panel>";
- } else {
- CMS.debug("Error: unknown type " + v.getClass().getName());
- }
- return ret;
- }
-
- 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(">");
- }
- }
- return ret.toString();
- }
-
- 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).
- if (request.getParameter("panelname") != null) {
- String name = request.getParameter("panelname");
- for (int i = 0; i < mPanels.size(); i++) {
- IWizardPanel panel = mPanels.elementAt(i);
- if (panel.getId().equals(name)) {
- return i;
- }
- }
- } else if (request.getParameter("p") != null) {
- p = Integer.parseInt(request.getParameter("p"));
- }
- return p;
- }
-
- public String getNameFromPanelNo(int p) {
- IWizardPanel wp = mPanels.elementAt(p);
- return wp.getId();
- }
-
- public IWizardPanel getPreviousPanel(int p) {
- CMS.debug("getPreviousPanel input p=" + p);
- IWizardPanel backpanel = mPanels.elementAt(p - 1);
- if (backpanel.isSubPanel()) {
- backpanel = mPanels.elementAt(p - 1 - 1);
- }
- while (backpanel.shouldSkip()) {
- backpanel = mPanels.elementAt(backpanel.getPanelNo() - 1);
- }
- CMS.debug("getPreviousPanel output p=" + backpanel.getPanelNo());
- return backpanel;
- }
-
- public IWizardPanel getNextPanel(int p) {
- CMS.debug("getNextPanel input p=" + p);
- IWizardPanel panel = 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 {
- p = p + 1;
- }
- IWizardPanel nextpanel = getPanelByNo(p);
- CMS.debug("getNextPanel output p=" + p);
- return nextpanel;
- }
-
- public Template goApply(HttpServletRequest request,
- HttpServletResponse response,
- Context context) {
- return goNextApply(request, response, context, true);
- }
-
- public Template goNext(HttpServletRequest request,
- HttpServletResponse response,
- Context context) {
- return goNextApply(request, response, context, false);
- }
-
- /*
- * 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) {
- int p = getPanelNo(request);
- if (stay == true)
- CMS.debug("WizardServlet: in reply " + p);
- else
- CMS.debug("WizardServlet: in next " + p);
-
- IWizardPanel panel = 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);
- }
- } 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());
- context.put("p", Integer.toString(p));
- context.put("panelname", getNameFromPanelNo(p));
- if (p == 0) {
- CMS.debug("WizardServlet: firstpanel");
- context.put("firstpanel", Boolean.TRUE);
- }
- if (p == (mPanels.size() - 1)) {
- 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);
- }
- } else {
- 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) {
- int p = getPanelNo(request);
- CMS.debug("WizardServlet: in back " + p);
- IWizardPanel backpanel = getPreviousPanel(p);
-
- if (backpanel.showApplyButton() == true)
- context.put("showApplyButton", Boolean.TRUE);
- else
- context.put("showApplyButton", Boolean.FALSE);
- backpanel.display(request, response, context);
- 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);
- }
- if (p == (mPanels.size() - 1)) {
- CMS.debug("WizardServlet: lastpanel");
- context.put("lastpanel", Boolean.TRUE);
- }
- try {
- return Velocity.getTemplate("admin/console/config/wizard.vm");
- } 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;
- }
- return true;
- }
-
- public void outputHttpParameters(HttpServletRequest httpReq) {
- CMS.debug("WizardServlet:service() uri = " + httpReq.getRequestURI());
- Enumeration<String> paramNames = httpReq.getParameterNames();
- while (paramNames.hasMoreElements()) {
- String pn = paramNames.nextElement();
- // added this facility so that password can be hidden,
- // 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)'");
- } else {
- CMS.debug("WizardServlet::service() param name='" + pn +
- "' value='" + httpReq.getParameter(pn) + "'");
- }
- }
- }
-
- public Template handleRequest(HttpServletRequest request,
- HttpServletResponse response,
- Context context) {
- CMS.debug("WizardServlet: process");
-
- if (CMS.debugOn()) {
- outputHttpParameters(request);
- }
-
- if (!authenticate(request, response, context)) {
- CMS.debug("WizardServlet: authentication failure");
- return null;
- }
-
- String op = request.getParameter("op"); /* operation */
- if (op == null) {
- op = "display";
- }
- CMS.debug("WizardServlet: op=" + op);
- CMS.debug("WizardServlet: size=" + mPanels.size());
-
- context.put("name", name);
- context.put("size", Integer.toString(mPanels.size()));
- exposePanels(request, response, context);
-
- if (op.equals("display")) {
- return displayPanel(request, response, context);
- } else if (op.equals("next")) {
- return goNext(request, response, context);
- } else if (op.equals("apply")) {
- return goApply(request, response, context);
- } else if (op.equals("back")) {
- return goBack(request, response, context);
- }
- return null;
- }
-}