diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/task/CMSConfigCert.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/task/CMSConfigCert.java | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/task/CMSConfigCert.java b/base/console/src/com/netscape/admin/certsrv/task/CMSConfigCert.java new file mode 100644 index 000000000..7d85d161f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/task/CMSConfigCert.java @@ -0,0 +1,207 @@ +// --- 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.admin.certsrv.task; + +import java.util.*; +import javax.swing.*; +import com.netscape.management.client.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.config.install.*; +import com.netscape.admin.certsrv.wizard.WizardBasePanel; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.topology.*; +import com.netscape.management.client.comm.*; +import java.net.*; +import java.io.*; +import netscape.ldap.*; +import netscape.ldap.util.*; + +/** + * Perform certificate server configuration. + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSConfigCert extends CGITask { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "CMSCONFIGCERT"; + + public static final String CONFIG_CERT_CGI = "Tasks/Operation/config-cert"; + + //private boolean mSuccess = false; // status of last executed CGI + //private Hashtable mCgiResponse = null; // holds parsed contents of CGI return + private String mCgiTask = null; // CGI task to call + private InstallWizardInfo mWizardInfo; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSConfigCert() { + super(); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void initialize(InstallWizardInfo info) { + _consoleInfo = info.getAdminConsoleInfo(); + + // the results coming back from the daemon will be added to the + // wizard information. + mWizardInfo = info; + + setForceBasicAuth(true); + } + + /** + * Collect the data in name value pairs format and then send them to the + * cgi process. + */ + public boolean configCert(Hashtable data) { + JFrame mActiveFrame = UtilConsoleGlobals.getActivatedFrame(); + if (_consoleInfo.get("AdminUsername") == null) + _consoleInfo.put("AdminUsername", _consoleInfo.getAuthenticationDN()); + Debug.println("AdminUsername = " + _consoleInfo.get("AdminUsername")); + + if (_consoleInfo.get("AdminUserPassword") == null) + _consoleInfo.put("AdminUserPassword", + _consoleInfo.getAuthenticationPassword()); + Debug.println("AdminUserPassword = " + _consoleInfo.get("AdminUserPassword")); + data.put("AdminUserPassword", _consoleInfo.getAuthenticationPassword()); + _consoleInfo.put("arguments", data); + + // Send Random value for RNG entropy + data.put(ConfigConstants.PR_CMS_SEED, new Long(WizardBasePanel.mSeed).toString()); + + boolean status = false; // return value + + Cursor cursor = mActiveFrame.getCursor(); + int type = cursor.getType(); + cursor = new Cursor(Cursor.WAIT_CURSOR); + mActiveFrame.setCursor(cursor); + + try { + status = super.run(null, CONFIG_CERT_CGI); + } catch (Exception e) { + Debug.println("Unexpected Error"+e.toString()); + status = false; + } + Debug.println("CMSConfigCert: configCert() after run status=" + + status + " mSuccess=" + mSuccess); + + if (!mSuccess) { + Debug.println("Show error dialog"); + String errorMsg = getErrorMessage(); +/* + if (errorMsg == null || errorMsg.equals("")) + CMSAdminUtil.showMessageDialog(mActiveFrame, mResource, PREFIX, + "SYSTEMERROR", CMSAdminUtil.ERROR_MESSAGE); + else + JOptionPane.showMessageDialog(mActiveFrame, errorMsg, + "Error", CMSAdminUtil.ERROR_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_ERROR_ICON)); +*/ + } + + cursor = new Cursor(type); + mActiveFrame.setCursor(cursor); + + return mSuccess; + } + + /** + * the operation is finished after we receive the http stream + */ + public void replyHandler(InputStream response, CommRecord cr) { + mSuccess = false; +/* + if (mCgiResponse != null) + mCgiResponse.clear(); +*/ + + try { + BufferedReader rspStream = + new BufferedReader(new InputStreamReader(response, "UTF8")); + String rspStr; + + Debug.println("CMSConfigCert: replyHandler() - start"); + while ((rspStr = rspStream.readLine()) != null) + { + Debug.println("ConfigCert: replyHandler() - read [" + rspStr + "]"); + // NMC_ messages are parsed, but not shown to the user + /* + if (_statusText != null && !rspStr.startsWith("NMC_")) { + _statusText.append(rspStr + "\n"); + Thread.yield(); // allow graphics repaints + } + */ + parse(rspStr); + } + } catch (Exception e) { + Debug.println("ConfigCert.Exception : " + e.toString()); + } + + Debug.println("ConfigCert.replyHandler: finished, mSuccess=" + + mSuccess); + + finish(); + } + + /** + * return the value for the given keyword in the reply + */ + private void parse(String s) { + String sName; + String sValue; + int iIndex; + + Debug.println("Parse input: " + s); + + if ((iIndex=s.indexOf(":")) != (-1)) + { + sName = s.substring(0, iIndex).trim(); + sValue = s.substring(iIndex+1).trim(); + Debug.println("Parse input: name=" + sName + " value=" + sValue); + mWizardInfo.put(sName, sValue); +/* + if (mCgiResponse == null) + mCgiResponse = new Hashtable(); + mCgiResponse.put(sName, sValue); +*/ + if (sName.equalsIgnoreCase("NMC_Status")) + { + int code = Integer.parseInt(sValue); + mSuccess = (code == 0); + Debug.println("Parse input: code=" + code + " mSuccess=" + mSuccess); + } else if (sName.equalsIgnoreCase("NMC_ERRINFO")) + mErrorMsg = sValue; + Debug.println("ErrorMsg : " + mErrorMsg); + } + + Debug.println("Parse finished"); + } +} |