From 621d9e5c413e561293d7484b93882d985b3fe15f Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Sat, 24 Mar 2012 02:27:47 -0500 Subject: Removed unnecessary pki folder. Previously the source code was located inside a pki folder. This folder was created during svn migration and is no longer needed. This folder has now been removed and the contents have been moved up one level. Ticket #131 --- .../certsrv/config/WBaseManualCertRequestPage.java | 508 +++++++++++++++++++++ 1 file changed, 508 insertions(+) create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java (limited to 'base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java') diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java new file mode 100644 index 000000000..195979f9c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java @@ -0,0 +1,508 @@ +// --- 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.config; + +import java.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.install.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Certificate wizard page + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseManualCertRequestPage extends WizardBasePanel { + + public static final String SERVER_CERT = "server"; + public static final String CLIENT_CERT = "client"; + public static final String CA_CERT = "ca"; + public static final String RA_CERT = "ra"; + public static final String OCSP_CERT = "ocsp"; + public static final String OBJECT_SIGNING_CERT = "objSignClient"; + public static final String OTHER_CERT = "other"; + public static final String ROUTER_CERT = "router"; // deprecated + public static final String CEP_CERT = "CEP-Request"; + + public static final String CERT_TYPE = "certType"; + public static final String PKCS10_REQUEST = "pkcs10Request"; + public static final String CMC_REQUEST = "cmcRequest"; + + protected JButton mCopy; + protected JTextArea mText; + protected String mPanelName, mDir; + protected JTextArea mFileName; + protected JTextArea mDesc; + + protected JTextField mHostText, mPortText; + protected JLabel mHostLbl, mPortLbl; + protected JLabel mSSLText; + protected JCheckBox mSSL; // ssl or not + protected String mHost, mPort; + protected JLabel mSendNowText; + protected JCheckBox mSendNowBox; + protected Color mActiveColor; + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + protected String mReq = null; + protected String mReqType = null; + protected String mReqFormat = null; + + public WBaseManualCertRequestPage(String panelName) { + super(panelName); + mPanelName = panelName; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + mReqType = wizardInfo.getCertType(); + mReqFormat = wizardInfo.getReqFormat(mReqType); + + if (mReqType.equals(Constants.PR_CA_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.CA_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_SERVER_CERT) ){ + mReq = (String)wizardInfo.get(ConfigConstants.SSL_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_KRA_TRANSPORT_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.KRA_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_OCSP_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.OCSP_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_RA_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.RA_CERT_REQUEST); + Debug.println("no request got from ra stage"); + }else { + setErrorMessage("Wrong cert request type!"); + return false; + } + + if (mReq == null || mReq.equals("")){ + mReq = wizardInfo.getCertRequest(); + } + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)){ + + // Break the long single line:header,64 byte lines,trailer + // Assuming this is the only format we generate. + String CERT_NEW_REQUEST_HEADER = "-----BEGIN NEW CERTIFICATE REQUEST-----"; + String CERT_NEW_REQUEST_TRAILER = "-----END NEW CERTIFICATE REQUEST-----"; + int head = mReq.indexOf(CERT_NEW_REQUEST_HEADER); + int trail = mReq.indexOf(CERT_NEW_REQUEST_TRAILER); + String unwrapped = + mReq.substring(head+CERT_NEW_REQUEST_HEADER.length(),trail); + String str = CERT_NEW_REQUEST_HEADER + "\n"; + int len = unwrapped.length(); + for (int i = 0; i < len; i=i+64){ + if (i+64 < len) + str = str + unwrapped.substring(i,i+64) +"\n"; + else + str = str + unwrapped.substring(i,len) +"\n"; + } + str = str + CERT_NEW_REQUEST_TRAILER; + mReq = str; + } else if (mReqFormat.equals(ConfigConstants.PR_REQUEST_CMC)){ + String str = ""; + int len = mReq.length(); + for (int i = 0; i < len; i=i+64){ + if (i+64 < len) + str = str + mReq.substring(i,i+64) +"\n"; + else + str = str + mReq.substring(i,len) +"\n"; + } + mReq = str; + } + + if (mReq == null) + return false; + mText.setText(mReq); + + mText.selectAll(); + setBorder(makeTitledBorder(mPanelName)); + + mDir = wizardInfo.getCertRequestDir(); + String str = mResource.getString(mPanelName+"_TEXT_FILELOC_LABEL")+mDir+"."; + mFileName.setText(str); + + if (mSendNowBox.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + + String host = wizardInfo.getCMHost(); + if (host != null && !host.equals("")) + mHostText.setText(host); + String port = wizardInfo.getCMEEPort(); + if (port != null && !port.equals("")) + mPortText.setText(port); + + String portType = wizardInfo.getCMEEType(); + if (portType != null && portType.equals("http")) + mSSL.setSelected(false); + + String desc = ""; + if (!wizardInfo.isNewRequest()) { + desc = mResource.getString(mPanelName+"_TEXT_IGNOR_LABEL")+ + "\n"; + } + String certType = wizardInfo.getCertType(); + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)) { + desc = desc + mResource.getString( mPanelName+"_TEXT_DESC_LABEL"); + } else if (mReqFormat.equals(ConfigConstants.PR_REQUEST_CMC)) { + desc = desc + mResource.getString( + mPanelName+"_TEXT_CMCDESC_LABEL"); + } + mDesc.setText(desc); + + return true; + } + + public boolean validatePanel() { + if (!mSendNowBox.isSelected()) { + mHost = ""; + mPort = ""; + return true; + } + + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + if (!mSendNowBox.isSelected()) + return true; + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mHost != null && !mHost.equals("")) + wizardInfo.setCMHost(mHost); + if (mPort != null && !mPort.equals("")) + wizardInfo.setCMEEPort(mPort); + if (mSSL.isSelected()) + wizardInfo.setCMEEType("https"); + else + wizardInfo.setCMEEType("http"); + + CMSRequestCert requestCertCgi = new CMSRequestCert(); + requestCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + + String certType = null; + if (mReqType.equals(Constants.PR_CA_SIGNING_CERT)){ + data.put("profileId", "caCACert"); + }else if (mReqType.equals(Constants.PR_SERVER_CERT) || + mReqType.equals(Constants.PR_KRA_TRANSPORT_CERT)){ + data.put("profileId", "caServerCert"); + }else if (mReqType.equals(Constants.PR_OCSP_SIGNING_CERT)){ + data.put("profileId", "caOCSPCert"); + }else if (mReqType.equals(Constants.PR_RA_SIGNING_CERT)){ + data.put("profileId", "caRACert"); + }else { + setErrorMessage("Wrong cert request type!"); + return false; + } + + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)){ + data.put("cert_request_type", "pkcs10"); + data.put("cert_request", mReq); + } else { + data.put("cert_request_type", "cmc"); + data.put("cert_request", mReq); + // test full response, but we don't really need it + // data.put("fullResponse", "true"); + } + + startProgressStatus(); + boolean ready = requestCertCgi.requestCert(data); + endProgressStatus(); + + if (!ready) { + String str = requestCertCgi.getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + return ready; + } + wizardInfo.setRequestSent(ready); + + //save the stage + String reqID = wizardInfo.getRequestID(); + String reqStatus = wizardInfo.getRequestStatus(); + String reqError = wizardInfo.getRequestError(); + + wizardInfo.setX509RequestID(reqID); + wizardInfo.setX509RequestStatus(reqStatus); + if (reqError != null) + wizardInfo.setX509RequestError(reqError); + + // rejected request should not be saved as requestSuccStage!! + if ( (reqID != null) && !reqID.equals("") && + (wizardInfo.getRequestError() == null) && + (reqStatus.equals(Constants.PR_REQUEST_SUCCESS) + || reqStatus.equals(Constants.PR_REQUEST_PENDING) + || reqStatus.equals(Constants.PR_REQUEST_SVC_PENDING)) ) { + data = new Hashtable(); + + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + data.put(ConfigConstants.TASKID, TaskId.TASK_REQUEST_SUCCESS); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_SERVER_ROOT, + consoleInfo.get(ConfigConstants.PR_SERVER_ROOT)); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + data.put(Constants.PR_CERTIFICATE_TYPE, mReqType); + data.put(mReqType+ConfigConstants.PR_REQUEST_ID, reqID); + + data.put(ConfigConstants.CA_EEPORT, mPortText.getText()); + data.put(ConfigConstants.CA_EETYPE, wizardInfo.getCMEEType()); + data.put(ConfigConstants.CA_HOST, mHostText.getText()); + startProgressStatus(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + ready = configCertCgi.configCert(data); + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + return ready; + } + } + return ready; + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + mDesc = createTextArea(mResource.getString( + mPanelName+"_TEXT_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + mActiveColor = mDesc.getBackground(); + + mText = new JTextArea(null, null, 10, 10); + //mText.setLineWrap(true); + //mText.setWrapStyleWord(true); + mText.setEditable(false); + JScrollPane scrollPane = new JScrollPane(mText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 50)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.weighty = 0.5; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + mCopy = makeJButton("COPY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCopy, gbc); + + mFileName = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mFileName, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 0.5; + gbc.fill = gbc.BOTH; + add(dummy, gbc); + + mSendNowBox = makeJCheckBox("SENDNOW", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSendNowBox, gbc); + + mSendNowText = new JLabel(mResource.getString( + mPanelName + "_TEXT_SENDNOW_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSendNowText, gbc); + + mHostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostLbl, gbc); + + mHostText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + mActiveColor = mHostText.getBackground(); + + mPortLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortLbl, gbc); + + mPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortText, gbc); + + mSSLText = new JLabel(mResource.getString( + mPanelName+"_TEXT_SSL_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSSLText, gbc); + + mSSL = makeJCheckBox("SSL", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSSL, gbc); + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent event) { + if (event.getSource().equals(mCopy)) { + mText.copy(); + } + if (mSendNowBox.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + protected void enableFields(boolean enabled, Color color) { + mSendNowText.setEnabled(enabled); + //mSendNowText.setEditable(enabled); + CMSAdminUtil.repaintComp(mSendNowText); + mHostLbl.setEnabled(enabled); + mPortLbl.setEnabled(enabled); + mHostText.setEnabled(enabled); + mHostText.setEditable(enabled); + mHostText.setBackground(color); + mPortText.setEnabled(enabled); + mPortText.setEditable(enabled); + mPortText.setBackground(color); + CMSAdminUtil.repaintComp(mHostLbl); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortLbl); + CMSAdminUtil.repaintComp(mPortText); + mSSLText.setEnabled(enabled); + //mSSLText.setEditable(enabled); + CMSAdminUtil.repaintComp(mSSLText); + mSSL.setEnabled(enabled); + //mSSL.setEditable(enabled); + //mSSL.setBackground(color); + CMSAdminUtil.repaintComp(mSSL); + + } +} -- cgit