From a4682ceae6774956461edd03b2485bbacea445f4 Mon Sep 17 00:00:00 2001 From: mharmsen Date: Tue, 4 Oct 2011 01:17:41 +0000 Subject: Bugzilla Bug #688225 - (dogtagIPAv2.1) TRACKER: of the Dogtag fixes for freeIPA 2.1 git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/tags/IPA_v2_RHEL_6_2_20111003@2252 c9f7a03b-bd48-0410-a16d-cbbf54688b0b --- .../certsrv/config/WBaseCertExtensionPage.java | 445 +++++++++++++++++++++ 1 file changed, 445 insertions(+) create mode 100644 pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java') diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java new file mode 100644 index 000000000..6c92ed61e --- /dev/null +++ b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java @@ -0,0 +1,445 @@ +// --- 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.awt.*; +import java.awt.event.*; +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.install.InstallWizardInfo; + +/** + * Base class for the Certificate Extension wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseCertExtensionPage extends WizardBasePanel { + protected JCheckBox mMIMECheckBox, mBasicCheckBox, mExtendedKeyCheckBox; + protected JCheckBox mAKICheckBox, mSKICheckBox; + protected JCheckBox mCACheckBox, mCertPathBox, mKeyUsageBox; + protected JTextField mCertPathText; + protected JTextArea mMIMEText; + protected JLabel mCMCLabel; + protected JButton mPaste; + protected byte[] mDerByte; + protected Color mActiveColor; + protected JCheckBox mSSLClient, mSSLServer, mSSLMail, mObjectSigning, mTimeStamping; + protected JCheckBox mOCSPSigning, mOCSPNoCheck, mAIACheckBox; + protected static final String DEFAULT_CERT_LEN = "100"; + protected String mPanelName; + protected boolean mModified=false; + + public WBaseCertExtensionPage(String panelName) { + super(panelName); + } + + public boolean validatePanel() { + if (mCertPathBox.isSelected()) { + String str = mCertPathText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKLEN"); + return false; + } + + int len = 0; + try { + len = Integer.parseInt(str); + } catch (NumberFormatException e) { + setErrorMessage("NONINTEGER"); + return false; + } + + if (len < 0) { + setErrorMessage("INVALID"); + return false; + } + + } + + if (mMIMECheckBox.isSelected()) { + String derString = mMIMEText.getText().trim(); + if (derString.equals("")) { + setErrorMessage("DERBLANKFIELD"); + return false; + } + } + + return true; + } + + public boolean initializePanel(WizardInfo info) { + if (!mModified) { + boolean basicConstraints = mBasicCheckBox.isSelected(); + boolean extendedKey = mExtendedKeyCheckBox.isSelected(); + boolean derExt = mMIMECheckBox.isSelected(); + + if (basicConstraints) + enableBasicConstraints(basicConstraints, mActiveColor); + else + enableBasicConstraints(basicConstraints, getBackground()); + + enableExtendedKey(extendedKey); + + if (derExt) + enableMIMEExt(derExt, mActiveColor); + else + enableMIMEExt(derExt, getBackground()); + } + + if (info instanceof InstallWizardInfo) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + // If signed by self, no request will be generated + // check if a signing cert installed, make cmc note invisible + String type = wizardInfo.getCertType(); + if ((type.equals(Constants.PR_KRA_TRANSPORT_CERT) && + wizardInfo.isKRACertLocalCA()) || + (type.equals(Constants.PR_SERVER_CERT) && + wizardInfo.isSSLCertLocalCA()) || + type.equals(Constants.PR_OCSP_SIGNING_CERT) || + (type.equals(Constants.PR_CA_SIGNING_CERT) && + wizardInfo.isCACertLocalCA()) || + (type.equals(Constants.PR_SERVER_CERT) || + type.equals(Constants.PR_KRA_TRANSPORT_CERT)) && ( + (wizardInfo.isCAInstalled() && + wizardInfo.isCACertInstalledDone()) || + (wizardInfo.isRAInstalled() && + wizardInfo.isRACertInstalledDone()) || + (wizardInfo.isKRAInstalled() && + wizardInfo.isKRACertInstalledDone()) || + (wizardInfo.isOCSPInstalled() && + wizardInfo.isOCSPCertInstalledDone()) ) ) { + mCMCLabel.setVisible(false); + CMSAdminUtil.repaintComp(mCMCLabel); + } + } else { + mCMCLabel.setVisible(false); + CMSAdminUtil.repaintComp(mCMCLabel); + } + + return true; + } + + protected void enableBasicConstraints(boolean enable, Color color) { + mCACheckBox.setEnabled(enable); + mCertPathBox.setEnabled(enable); + if (enable && !mCertPathBox.isSelected()) { + enableCertPath(!enable, getBackground()); + } else { + enableCertPath(enable, color); + } + CMSAdminUtil.repaintComp(mCACheckBox); + CMSAdminUtil.repaintComp(mCertPathText); + } + + protected void enableCertPath(boolean enable, Color color) { + mCertPathText.setEnabled(enable); + mCertPathText.setEditable(enable); + mCertPathText.setBackground(color); + CMSAdminUtil.repaintComp(mCertPathBox); + } + + protected void enableExtendedKey(boolean enable) { + mSSLClient.setEnabled(enable); + mSSLServer.setEnabled(enable); + mSSLMail.setEnabled(enable); + mObjectSigning.setEnabled(enable); + mTimeStamping.setEnabled(enable); + mOCSPSigning.setEnabled(enable); + + CMSAdminUtil.repaintComp(mSSLClient); + CMSAdminUtil.repaintComp(mSSLServer); + CMSAdminUtil.repaintComp(mSSLMail); + CMSAdminUtil.repaintComp(mObjectSigning); + CMSAdminUtil.repaintComp(mTimeStamping); + CMSAdminUtil.repaintComp(mOCSPSigning); + } + + protected void enableMIMEExt(boolean enable, Color color) { + mMIMEText.setEnabled(enable); + mMIMEText.setEditable(enable); + mMIMEText.setBackground(color); + mPaste.setEnabled(enable); + CMSAdminUtil.repaintComp(mMIMEText); + CMSAdminUtil.repaintComp(mPaste); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + mPanelName+"_TEXT_HEADING_LABEL")); + //"CERTEXTENSIONWIZARD_TEXT_HEADING_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(desc, gbc); + + mBasicCheckBox = makeJCheckBox("BASIC"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mBasicCheckBox, gbc); + + mCACheckBox = makeJCheckBox("CA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0,COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCACheckBox, gbc); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + mCertPathBox = makeJCheckBox("CERTPATHLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0, 0, 0, COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + panel.add(mCertPathBox, gbc); + + mCertPathText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel.add(mCertPathText, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + +/* + JTextArea dummy = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); +*/ + + mExtendedKeyCheckBox = makeJCheckBox("EXTENDEDKEY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mExtendedKeyCheckBox, gbc); + + mSSLClient = makeJCheckBox("SSLCLIENT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mSSLClient, gbc); + + mSSLServer = makeJCheckBox("SSLSERVER"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mSSLServer, gbc); + + mSSLMail = makeJCheckBox("EMAIL"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + add(mSSLMail, gbc); + + mObjectSigning = makeJCheckBox("OBJECTSIGNING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mObjectSigning, gbc); + + mTimeStamping = makeJCheckBox("TIMESTAMPING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mTimeStamping, gbc); + + mOCSPSigning = makeJCheckBox("OCSPSIGNING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + add(mOCSPSigning, gbc); + + mAIACheckBox = makeJCheckBox("AIA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mAIACheckBox, gbc); + + mAKICheckBox = makeJCheckBox("AKI"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mAKICheckBox, gbc); + + mSKICheckBox = makeJCheckBox("SKI"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSKICheckBox, gbc); + + mOCSPNoCheck = makeJCheckBox("OCSPNOCHECK"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mOCSPNoCheck, gbc); + + mCMCLabel = new JLabel(mResource.getString( + mPanelName + "_TEXT_CMC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCMCLabel, gbc); + + mKeyUsageBox = makeJCheckBox("KEYUSAGE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mKeyUsageBox, gbc); + mKeyUsageBox.setSelected(true); + + mMIMECheckBox = makeJCheckBox("MIME"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mMIMECheckBox, gbc); + + mMIMEText = new JTextArea("", 40, 70); + JScrollPane scrollPane = new JScrollPane(mMIMEText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 30)); + //scrollPane.setAlignmentX(LEFT_ALIGNMENT); + //scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(scrollPane, gbc); + mActiveColor = mMIMEText.getBackground(); + + mPaste = makeJButton("PASTE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(mPaste, gbc); + + super.init(); + } + + public void actionPerformed(ActionEvent e) { + Object source = e.getSource(); + if (source.equals(mPaste)) { + mMIMEText.paste(); + } else if (source.equals(mBasicCheckBox)) { + if (mBasicCheckBox.isSelected()) + enableBasicConstraints(true, mActiveColor); + else + enableBasicConstraints(false, getBackground()); + } else if (source.equals(mExtendedKeyCheckBox)) { + if (mExtendedKeyCheckBox.isSelected()) + enableExtendedKey(true); + else + enableExtendedKey(false); + } else if (source.equals(mMIMECheckBox)) { + if (mMIMECheckBox.isSelected()) + enableMIMEExt(true, mActiveColor); + else + enableMIMEExt(false, getBackground()); + } else if (source.equals(mCertPathBox)) { + if (mCertPathBox.isSelected()) + enableCertPath(true, mActiveColor); + else + enableCertPath(false, getBackground()); + } + } +} -- cgit