diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java new file mode 100644 index 000000000..f7505be2e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java @@ -0,0 +1,273 @@ +// --- 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.keycert; + +import javax.swing.border.*; +import javax.swing.*; +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.*; + +/** + * Certificate Extension for setup wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WCertExtensionPage extends WBaseCertExtensionPage implements + IWizardPanel { + private static final String PANELNAME = "CERTEXTENSION1WIZARD"; + private static final String HELPINDEX = + "configuration-keycert-wizard-extension-help"; + + WCertExtensionPage(JDialog parent) { + super(PANELNAME); + mPanelName = PANELNAME; + mParent = parent; + init(); + } + + WCertExtensionPage(JDialog parent, JFrame frame) { + super(PANELNAME); + mPanelName = PANELNAME; + mParent = parent; + mAdminFrame = frame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + //System.out.println("extension"); + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + if (wizardInfo.getOperationType().equals(wizardInfo.INSTALLTYPE)) + return false; + + if (wizardInfo.getCAType().equals(wizardInfo.SUBORDINATE_CA) + && !(wizardInfo.isSSLCertLocalCA())) + return false; + + String title = ""; + + if (!mModified) { + String certType = wizardInfo.getCertType(); + if (certType.equals(Constants.PR_CA_SIGNING_CERT)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_CASIGNING_LABEL"); + mBasicCheckBox.setSelected(true); + mAKICheckBox.setSelected(true); + mCACheckBox.setSelected(true); + mSKICheckBox.setSelected(true); + mCertPathBox.setSelected(false); + mExtendedKeyCheckBox.setSelected(false); + mExtendedKeyCheckBox.setEnabled(true); + mKeyUsageBox.setSelected(true); + mOCSPNoCheck.setSelected(false); + mOCSPNoCheck.setEnabled(true); + mAIACheckBox.setSelected(true); + } else if (certType.equals(Constants.PR_OCSP_SIGNING_CERT)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_OCSPSIGNING_LABEL"); + mKeyUsageBox.setSelected(true); + mSKICheckBox.setSelected(false); + mSKICheckBox.setEnabled(true); + mBasicCheckBox.setEnabled(false); + mAKICheckBox.setSelected(true); + mAKICheckBox.setEnabled(true); + mCACheckBox.setSelected(false); + mCACheckBox.setEnabled(false); + mCertPathBox.setEnabled(false); + mExtendedKeyCheckBox.setSelected(true); + mOCSPSigning.setSelected(true); + mOCSPNoCheck.setSelected(false); + mOCSPNoCheck.setEnabled(true); + mAIACheckBox.setSelected(true); + } else if (certType.equals(Constants.PR_RA_SIGNING_CERT)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_RASIGNING_LABEL"); + mAKICheckBox.setSelected(true); + mExtendedKeyCheckBox.setSelected(true); + mSSLClient.setSelected(true); + } else if (certType.equals(Constants.PR_KRA_TRANSPORT_CERT)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_KRATRANSPORT_LABEL"); + mAKICheckBox.setSelected(true); + } else if (certType.equals(Constants.PR_SERVER_CERT)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_SERVER_LABEL"); + mExtendedKeyCheckBox.setSelected(true); + mSSLServer.setSelected(true); + mAKICheckBox.setSelected(true); + mSKICheckBox.setSelected(false); + mSKICheckBox.setEnabled(true); + mOCSPNoCheck.setSelected(false); + mOCSPNoCheck.setEnabled(true); + mAIACheckBox.setSelected(true); + } else if (certType.equals(Constants.PR_SERVER_CERT_RADM)) { + title = mResource.getString( + "CERTEXTENSION1WIZARD_BORDER_SERVER_LABEL"); + mExtendedKeyCheckBox.setSelected(true); + mAKICheckBox.setSelected(true); + mSSLServer.setSelected(true); + } + } + + setBorder(new TitledBorder(title)); + + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + + if (mMIMECheckBox.isSelected()) { + startProgressStatus(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(ConfigConstants.PR_CERTIFICATE_EXTENSION, mMIMEText.getText().trim()); + AdminConnection connection = wizardInfo.getAdminConnection(); + try { + connection.validate( + DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_CERTIFICATE_EXTENSION, nvps); + } catch (EAdminException e) { + setErrorMessage(e.toString()); + return false; + } + endProgressStatus(); + } + + NameValuePairs nvps = new NameValuePairs(); + + nvps.put(Constants.PR_SUBJECT_NAME, wizardInfo.getSubjectName()); + if (wizardInfo.isNewKey()) { + String type = wizardInfo.getKeyType(); + if (type.equals("ECC")) { + nvps.put(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName()); + } else { + nvps.put(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); + } + nvps.put(Constants.PR_KEY_TYPE, type); + nvps.put(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); + } + //nvps.add(Constants.PR_VALIDITY_PERIOD, wizardInfo.getValidityPeriod()); + addValidityPeriod(wizardInfo, nvps); + + if (mBasicCheckBox.isSelected()) + addBasicConstraints(nvps); + + if (mExtendedKeyCheckBox.isSelected()) + addExtendedKey(nvps); + + if (mAIACheckBox.isSelected()) + nvps.put(Constants.PR_AIA, Constants.TRUE); + + if (mAKICheckBox.isSelected()) + nvps.put(Constants.PR_AKI, Constants.TRUE); + + if (mSKICheckBox.isSelected()) + nvps.put(Constants.PR_SKI, Constants.TRUE); + + if (mOCSPNoCheck.isSelected()) + nvps.put(Constants.PR_OCSP_NOCHECK, Constants.TRUE); + + if (mKeyUsageBox.isSelected()) + nvps.put(Constants.PR_KEY_USAGE, Constants.TRUE); + + if (mMIMECheckBox.isSelected()) + nvps.put(Constants.PR_DER_EXTENSION, mMIMEText.getText().trim()); + + wizardInfo.addEntry(wizardInfo.ALL_INFO, nvps); + + mModified = true; + return true; + } + + private void addValidityPeriod(CertSetupWizardInfo wizardInfo, + NameValuePairs nvps) { + nvps.put(Constants.PR_BEGIN_YEAR, wizardInfo.getBeginYear()); + nvps.put(Constants.PR_BEGIN_MONTH, wizardInfo.getBeginMonth()); + nvps.put(Constants.PR_BEGIN_DATE, wizardInfo.getBeginDate()); + nvps.put(Constants.PR_BEGIN_HOUR, wizardInfo.getBeginHour()); + nvps.put(Constants.PR_BEGIN_MIN, wizardInfo.getBeginMin()); + nvps.put(Constants.PR_BEGIN_SEC, wizardInfo.getBeginSec()); + nvps.put(Constants.PR_AFTER_YEAR, wizardInfo.getAfterYear()); + nvps.put(Constants.PR_AFTER_MONTH, wizardInfo.getAfterMonth()); + nvps.put(Constants.PR_AFTER_DATE, wizardInfo.getAfterDate()); + nvps.put(Constants.PR_AFTER_HOUR, wizardInfo.getAfterHour()); + nvps.put(Constants.PR_AFTER_MIN, wizardInfo.getAfterMin()); + nvps.put(Constants.PR_AFTER_SEC, wizardInfo.getAfterSec()); + } + + private void addBasicConstraints(NameValuePairs nvps) { + + if (mCACheckBox.isSelected()) + nvps.put(Constants.PR_IS_CA, Constants.TRUE); + + String certLen = mCertPathText.getText().trim(); + if (!certLen.equals("")) + nvps.put(Constants.PR_CERT_LEN, certLen); + } + + private void addExtendedKey(NameValuePairs nvps) { + + if (mSSLClient.isSelected()) + nvps.put(Constants.PR_SSL_CLIENT_BIT, Constants.TRUE); + if (mSSLServer.isSelected()) + nvps.put(Constants.PR_SSL_SERVER_BIT, Constants.TRUE); + if (mSSLMail.isSelected()) + nvps.put(Constants.PR_SSL_MAIL_BIT, Constants.TRUE); + if (mObjectSigning.isSelected()) + nvps.put(Constants.PR_OBJECT_SIGNING_BIT, Constants.TRUE); + if (mTimeStamping.isSelected()) + nvps.put(Constants.PR_TIMESTAMPING_BIT, Constants.TRUE); + if (mOCSPSigning.isSelected()) + nvps.put(Constants.PR_OCSP_SIGNING, Constants.TRUE); + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + private String getScope(WizardInfo info) { + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + String certType = wizardInfo.getCertType(); + String scope = ""; + if (certType.equals(Constants.PR_CA_SIGNING_CERT)) { + scope = ScopeDef.SC_CA_SIGNINGCERT; + } else if (certType.equals(Constants.PR_RA_SIGNING_CERT)) { + scope = ScopeDef.SC_RA_SIGNINGCERT; + } else if (certType.equals(Constants.PR_KRA_TRANSPORT_CERT)) { + scope = ScopeDef.SC_KRA_TRANSPORTCERT; + } else if (certType.equals(Constants.PR_SERVER_CERT)) { + scope = ScopeDef.SC_SERVER_CERT; + } + + return scope; + } +} |