diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/keycert/WCertTypePage.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/keycert/WCertTypePage.java | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/keycert/WCertTypePage.java b/base/console/src/com/netscape/admin/certsrv/keycert/WCertTypePage.java new file mode 100644 index 000000000..88350fc32 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/keycert/WCertTypePage.java @@ -0,0 +1,500 @@ +// --- 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 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.*; + +/** + * Select certificate type from certificate setup wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WCertTypePage extends WizardBasePanel implements IWizardPanel, + ItemListener { + private String mCASigningCert; + private String mRASigningCert; + private String mOCSPSigningCert; + private String mServerCert, mServerCertRadm, mOtherCert; + private String mKRATransportCert; + private JTextArea mCALbl; + private JRadioButton mCABtn; + private JRadioButton mSubBtn; + private JComboBox mCertBox; + private JTextArea mCertType; + private JTextField mCertTypeText; + private Color mActiveColor; + private static final String PANELNAME = "CERTTYPEWIZARD"; + private static final String HELPINDEX = + "configuration-keycert-wizard-certtype-help"; + + WCertTypePage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WCertTypePage(JDialog parent, JFrame frame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = frame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + if (wizardInfo.getOperationType().equals(wizardInfo.INSTALLTYPE)) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + if (wizardInfo.getCertType() != null) { + return true; + } + + AdminConnection connection = wizardInfo.getAdminConnection(); + NameValuePairs nvps = new NameValuePairs(); + + try { + NameValuePairs response = connection.search(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBSYSTEM, nvps); + + for (String name : response.keySet()) { + String type = response.get(name); + + if (type.equals(Constants.PR_RA_INSTANCE)) + mRASigningCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_RASIGNINGCERT_LABEL"); + else if (type.equals(Constants.PR_CA_INSTANCE)) + mCASigningCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_CASIGNINGCERT_LABEL"); + else if (type.equals(Constants.PR_KRA_INSTANCE)) + mKRATransportCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_KRATRANSPORTCERT_LABEL"); + } + } catch (EAdminException e) { + //showErrorDialog(e.toString()); + setErrorMessage(e.toString()); + } + + mOCSPSigningCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_OCSPSIGNINGCERT_LABEL"); + + mServerCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_SERVERCERT_LABEL"); + + mServerCertRadm = mResource.getString( + "CERTTYPEWIZARD_LABEL_SERVERCERTRADM_LABEL"); + + mOtherCert = mResource.getString( + "CERTTYPEWIZARD_LABEL_OTHER_LABEL"); + + mCertBox.removeAllItems(); + + if (mCASigningCert != null) + mCertBox.addItem(mCASigningCert); + + if (mRASigningCert != null) + mCertBox.addItem(mRASigningCert); + + if (mKRATransportCert != null) + mCertBox.addItem(mKRATransportCert); + + if (mOCSPSigningCert != null) + mCertBox.addItem(mOCSPSigningCert); + + if (mServerCert != null) + mCertBox.addItem(mServerCert); + +/* + if (mServerCertRadm != null) + mCertBox.addItem(mServerCertRadm); +*/ + + mCertBox.addItem(mOtherCert); + mCertBox.setSelectedIndex(0); + + String certType = (String)mCertBox.getSelectedItem(); + + if (certType.equals(mOtherCert)) { + mCABtn.setEnabled(false); + mSubBtn.setEnabled(false); + mCALbl.setEnabled(false); + mCertType.setEnabled(true); + mCertTypeText.setEnabled(true); + mCertTypeText.setBackground(mActiveColor); + } else { + mCABtn.setEnabled(true); + mSubBtn.setEnabled(true); + mCALbl.setEnabled(true); + mCertType.setEnabled(false); + mCertTypeText.setEnabled(false); + mCertTypeText.setBackground(getBackground()); + if ((mCASigningCert != null) && (certType.equals(mCASigningCert))) + enableFields(true,"casigning"); + else if ((mCASigningCert != null) && (mOCSPSigningCert != null) + && (certType.equals(mOCSPSigningCert))) + enableFields(true,"ocspsigning"); + else if ((mCASigningCert != null) && (mServerCert != null) + && (certType.equals(mServerCert))) + enableFields(true,"server"); + else if ((mCASigningCert != null) && (mServerCertRadm != null) + && (certType.equals(mServerCertRadm))) + enableFields(true,"server"); + else + enableFields(false,"other"); + } + + CMSAdminUtil.repaintComp(mCABtn); + CMSAdminUtil.repaintComp(mSubBtn); + CMSAdminUtil.repaintComp(mCALbl); + CMSAdminUtil.repaintComp(mCertType); + CMSAdminUtil.repaintComp(mCertTypeText); + return true; + } + + public boolean validatePanel() { + String str = (String)mCertBox.getSelectedItem(); + if (str.equals(mOtherCert)) { + if (mCertTypeText.getText().equals("")) { + setErrorMessage("BLANKCERTTYPE"); + return false; + } + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + NameValuePairs nvps = new NameValuePairs(); + AdminConnection connection = wizardInfo.getAdminConnection(); + startProgressStatus(); + String item = ((String)mCertBox.getSelectedItem()).trim(); + + if (mCASigningCert != null && item.equals(mCASigningCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_CA_SIGNING_CERT); + else if (mRASigningCert != null && item.equals(mRASigningCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_RA_SIGNING_CERT); + else if (mKRATransportCert != null && + item.equals(mKRATransportCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_KRA_TRANSPORT_CERT); + else if (mServerCert != null && item.equals(mServerCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_SERVER_CERT); + else if (mServerCertRadm != null && item.equals(mServerCertRadm.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_SERVER_CERT_RADM); + else if (mOCSPSigningCert != null && item.equals(mOCSPSigningCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_OCSP_SIGNING_CERT); + else if (mOtherCert != null && item.equals(mOtherCert.trim())) + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_OTHER_CERT); + + if (item.equals(mOtherCert.trim())) { + try { + NameValuePairs response = null; + + response = connection.read(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_GET_NICKNAMES, wizardInfo.getCertType(), nvps); + String value = response.get(Constants.PR_ALL_NICKNAMES); + wizardInfo.setNicknames(value); + } catch (EAdminException e) { + setErrorMessage(e.toString()); + endProgressStatus(); + return false; + } + } + + endProgressStatus(); + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CERTTYPEWIZARD_TEXT_HEADING_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); +*/ + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_LABEL_HEADING_LABEL")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + JTextArea heading1 = createTextArea(mResource.getString( + PANELNAME+"_LABEL_HEADING1_LABEL")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading1, gbc); + + mCertBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mCertBox, gbc); + mCertBox.addItemListener(this); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); + + mCertType = createTextArea(mResource.getString( + PANELNAME+"_LABEL_CERTTYPE_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCertType, gbc); + +/* + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); +*/ + + mCertTypeText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mCertTypeText, gbc); + mActiveColor = mCertTypeText.getBackground(); + + JLabel dummy2 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy2, gbc); + + mCALbl = createTextArea(mResource.getString( + "CERTTYPEWIZARD_TEXT_CATYPE_LABEL")); +/* + mCALbl = makeJLabel("CATYPE"); +*/ + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(mCALbl, gbc); + + mCABtn = makeJRadioButton("SELFSIGN", true); + 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(mCABtn, gbc); + + mSubBtn = makeJRadioButton("SUBORDINATE", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSubBtn, gbc); + + ButtonGroup caGroup = new ButtonGroup(); + caGroup.add(mCABtn); + caGroup.add(mSubBtn); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + String str = (String)mCertBox.getSelectedItem(); + + /* + if ((mCASigningCert == null) || (!str.equals(mCASigningCert))) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + return; + } + */ + + if ((mCASigningCert != null) && (str.equals(mCASigningCert))) { + if (mCABtn.isSelected()) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SELF_SIGNED); + } else if (mSubBtn.isSelected()) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, + wizardInfo.SUBORDINATE_CA); + } + } else if ((mCASigningCert != null) && (mServerCert != null) + && (str.equals(mServerCert))) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + if (mCABtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.TRUE); + else if (mSubBtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.FALSE); + } else if ((mCASigningCert != null) && (mServerCertRadm != null) + && (str.equals(mServerCertRadm))) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + if (mCABtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.TRUE); + else if (mSubBtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.FALSE); + } else if ((mCASigningCert != null) && (mOCSPSigningCert != null) + && (str.equals(mOCSPSigningCert))) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + if (mCABtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.TRUE); + else if (mSubBtn.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.FALSE); + } else if (mOtherCert != null && str.equals(mOtherCert)) { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + wizardInfo.setCertSubType(mCertTypeText.getText()); + } else { + wizardInfo.addEntry(wizardInfo.CA_TYPE, wizardInfo.SUBORDINATE_CA); + } + } + + public void itemStateChanged(ItemEvent e) { + if (e.getSource().equals(mCertBox)) { + String str = (String)mCertBox.getSelectedItem(); + if (str == null) + return; + + if (str.equals(mOtherCert)) { + mCABtn.setEnabled(false); + mSubBtn.setEnabled(false); + mCALbl.setEnabled(false); + mCertType.setEnabled(true); + mCertTypeText.setEnabled(true); + mCertTypeText.setBackground(mActiveColor); + } else { + mCABtn.setEnabled(true); + mSubBtn.setEnabled(true); + mCALbl.setEnabled(true); + mCertType.setEnabled(false); + mCertTypeText.setEnabled(false); + mCertTypeText.setBackground(getBackground()); + if ((mCASigningCert != null) && (str.equals(mCASigningCert))) + enableFields(true,"casigning"); + else if ((mCASigningCert != null) && (mOCSPSigningCert != null) + && (str.equals(mOCSPSigningCert))) + enableFields(true,"ocspsigning"); + else if ((mCASigningCert != null) && (mServerCert != null) + && (str.equals(mServerCert))) + enableFields(true,"server"); + else if ((mCASigningCert != null) && (mServerCertRadm != null) + && (str.equals(mServerCertRadm))) + enableFields(true,"server"); + else + enableFields(false,"other"); + } + CMSAdminUtil.repaintComp(mCertType); + CMSAdminUtil.repaintComp(mCertTypeText); + } + } + + private void enableFields(boolean enable,String type) { + String label = null; + String b1 = null; + String b2 = null; + if (type.equals("casigning")) { + label = + mResource.getString("CERTTYPEWIZARD_TEXT_CATYPE_LABEL"); + b1 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SELFSIGN_LABEL"); + b2 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SUBORDINATE_LABEL"); + } else if (type.equals("server")) { + label = + mResource.getString("CERTTYPEWIZARD_TEXT_SERVERTYPE_LABEL"); + b1 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SERVER_SELFSIGN_LABEL"); + b2 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SERVER_SUBORDINATE_LABEL"); + } else if (type.equals("ocspsigning")) { + label = + mResource.getString("CERTTYPEWIZARD_TEXT_OCSPTYPE_LABEL"); + b1 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SELFSIGNOCSP_LABEL"); + b2 = + mResource.getString("CERTTYPEWIZARD_RADIOBUTTON_SUBORDINATEOCSP_LABEL"); + } + + mCALbl.setEnabled(enable); + mCALbl.invalidate(); + mCALbl.validate(); + if (label != null) mCALbl.setText(label); + mCALbl.repaint(1); + mCABtn.setEnabled(enable); + mCABtn.invalidate(); + mCABtn.validate(); + if (b1 != null) mCABtn.setText(b1); + mCABtn.repaint(1); + mSubBtn.setEnabled(enable); + mSubBtn.invalidate(); + mSubBtn.validate(); + if (b2 != null) mSubBtn.setText(b2); + mSubBtn.repaint(1); + } +} |