summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java499
1 files changed, 499 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java
new file mode 100644
index 000000000..823980d56
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java
@@ -0,0 +1,499 @@
+// --- 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.install;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+import javax.swing.text.*;
+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.task.*;
+import com.netscape.management.client.console.*;
+
+/**
+ * Network panel for configurating the admin and EE port.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ */
+class WINetworkPage extends WizardBasePanel implements IWizardPanel {
+ private Color mActiveColor;
+
+ // TextField for port
+ private JTextField mAdminSSLPortText;
+ private JTextField mAgentSSLPortText;
+ private JTextField mGatewayPortText;
+ private JTextField mGatewaySSLPortText;
+ private JCheckBox mEnable;
+
+ private JTextArea mAgentDesc;
+ private JLabel mAgentPortLbl;
+ private JTextField mPortText;
+
+ protected AdminConnection mAdmin;
+ private boolean mBlankFieldError = false;
+ private boolean mNumberError = false;
+ private JLabel mPortLabel, mSSLPortLabel;
+
+ private static final String HELPINDEX =
+ "install-network-configuration-wizard-help";
+ private static final String PANELNAME = "NETWORKWIZARD";
+ private static final int MAX_PORT = 65535;
+ private static final int MIN_PORT = 1;
+ private boolean mEnableEEPorts;
+ private InstallWizardInfo mWizardInfo;
+ private boolean mWarning;
+
+ WINetworkPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ init();
+ }
+
+ WINetworkPage(JDialog parent, JFrame adminFrame) {
+ super(PANELNAME);
+ mParent = parent;
+ mAdminFrame = adminFrame;
+ init();
+ }
+
+ public boolean isLastPage() {
+ return false;
+ }
+
+ public boolean initializePanel(WizardInfo info) {
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+ mWizardInfo = wizardInfo;
+ if (wizardInfo.isNetworkDone())
+ return false;
+ setBorder(makeTitledBorder(PANELNAME));
+ boolean cloning = mWizardInfo.isCloning();
+ String selected_sub = mWizardInfo.getCloneSubsystem();
+ if (!cloning ||
+ (cloning && (selected_sub != null && !selected_sub.equals("ca")))) {
+ mAgentDesc.setVisible(false);
+ mAgentPortLbl.setVisible(false);
+ mPortText.setVisible(false);
+ }
+
+ if (wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPServiceAdded()) {
+ mEnable.setSelected(true);
+ } else {
+ mEnable.setSelected(wizardInfo.isEEEnabled());
+ }
+
+ if (wizardInfo.isRAInstalled())
+ mEnable.setSelected(true);
+ mAdminSSLPortText.setText(wizardInfo.getAdminPort());
+ mAgentSSLPortText.setText(wizardInfo.getAgentPort());
+ if (!wizardInfo.isCAInstalled() && !wizardInfo.isRAInstalled() &&
+ wizardInfo.isKRAInstalled()) {
+ enableFields(mPortLabel, mGatewayPortText, false, getBackground());
+ enableFields(mSSLPortLabel, mGatewaySSLPortText, false, getBackground());
+ mEnable.setEnabled(false);
+ mEnableEEPorts = false;
+ } else {
+ mGatewaySSLPortText.setText(wizardInfo.getEESecurePort());
+ mGatewayPortText.setText(wizardInfo.getEEPort());
+ mEnable.setEnabled(true);
+ if (mEnable.isSelected()) {
+ enableFields(true, mActiveColor);
+ enableFields(mPortLabel, mGatewayPortText, true, mActiveColor);
+ } else {
+ enableFields(false, getBackground());
+ enableFields(mPortLabel, mGatewayPortText, false, getBackground());
+ }
+ enableFields(mSSLPortLabel, mGatewaySSLPortText, true, mActiveColor);
+ mEnableEEPorts = true;
+ }
+
+ return true;
+ }
+
+ private void enableFields(JComponent comp1, JTextComponent comp2,
+ boolean enable, Color color) {
+ if (comp1 != null) {
+ comp1.setEnabled(enable);
+ CMSAdminUtil.repaintComp(comp1);
+ }
+ if (comp2 != null) {
+ comp2.setEnabled(enable);
+ comp2.setBackground(color);
+ comp2.setEditable(enable);
+ CMSAdminUtil.repaintComp(comp2);
+ }
+ }
+
+ public boolean validatePanel() {
+ String adminPort = mAdminSSLPortText.getText().trim();
+ String agentPort = mAgentSSLPortText.getText().trim();
+ String eePort = mGatewayPortText.getText().trim();
+ String sslEEPort = mGatewaySSLPortText.getText().trim();
+ String masteragentport = mPortText.getText().trim();
+
+ if (adminPort.equals("") || agentPort.equals("")) {
+ setErrorMessage("BLANKFIELD");
+ return false;
+ }
+
+ if (mEnableEEPorts) {
+ if (sslEEPort.equals("") || (mEnable.isSelected() && eePort.equals(""))) {
+ setErrorMessage("BLANKFIELD");
+ return false;
+ }
+ }
+
+ boolean cloning = mWizardInfo.isCloning();
+ String selected_sub = mWizardInfo.getCloneSubsystem();
+ if (cloning && (selected_sub != null && selected_sub.equals("ca"))) {
+ if (masteragentport.equals("")) {
+ setErrorMessage("BLANKFIELD");
+ return false;
+ }
+ }
+
+ int num = 0;
+ try {
+ num = Integer.parseInt(adminPort);
+ if (num < MIN_PORT || num > MAX_PORT) {
+ setErrorMessage("PORTRANGE");
+ return false;
+ }
+ num = Integer.parseInt(agentPort);
+ if (num < MIN_PORT || num > MAX_PORT) {
+ setErrorMessage("PORTRANGE");
+ return false;
+ }
+ if (mEnableEEPorts) {
+ num = Integer.parseInt(sslEEPort);
+ if (num < MIN_PORT || num > MAX_PORT) {
+ setErrorMessage("PORTRANGE");
+ return false;
+ }
+ if (mEnable.isSelected()) {
+ num = Integer.parseInt(eePort);
+ if (num < MIN_PORT || num > MAX_PORT) {
+ setErrorMessage("PORTRANGE");
+ return false;
+ }
+ }
+ }
+ if (cloning && (selected_sub != null && selected_sub.equals("ca")))
+ num = Integer.parseInt(masteragentport);
+ } catch (NumberFormatException e) {
+ setErrorMessage("NUMBERFORMAT");
+ return false;
+ }
+
+ if (adminPort.equals(agentPort) || agentPort.equals(sslEEPort) ||
+ (mEnable.isSelected() && eePort.equals(sslEEPort))) {
+ setErrorMessage("SAMEPORT");
+ return false;
+ }
+
+ if (mEnableEEPorts) {
+ if (agentPort.equals(sslEEPort) ||
+ (mEnable.isSelected() && eePort.equals(sslEEPort))) {
+ setErrorMessage("SAMEPORT");
+ return false;
+ }
+ }
+ setErrorMessage("");
+ return true;
+ }
+
+ private void setEEPorts(InstallWizardInfo wizardInfo, Hashtable data) {
+ String eePort = mGatewayPortText.getText().trim();
+ String eeSSLPort = mGatewaySSLPortText.getText().trim();
+ wizardInfo.setEEPort(eePort);
+ wizardInfo.setEESecurePort(eeSSLPort);
+ data.put(ConfigConstants.PR_EE_PORT, eePort);
+ data.put(ConfigConstants.PR_EE_SECURE_PORT, eeSSLPort);
+ if (mEnable.isSelected()) {
+ data.put(ConfigConstants.PR_EE_PORT_ENABLE,
+ ConfigConstants.TRUE);
+ wizardInfo.setEEEnable(ConfigConstants.TRUE);
+ } else {
+ data.put(ConfigConstants.PR_EE_PORT_ENABLE,
+ ConfigConstants.FALSE);
+ wizardInfo.setEEEnable(ConfigConstants.FALSE);
+ }
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+ ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo();
+ CMSConfigCert configCertCgi = new CMSConfigCert();
+ configCertCgi.initialize(wizardInfo);
+ Hashtable data = new Hashtable();
+ data.put(ConfigConstants.TASKID, TaskId.TASK_CONFIGURE_NETWORK);
+ data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY);
+ String agentPort = mAgentSSLPortText.getText().trim();
+ String radmPort = mAdminSSLPortText.getText().trim();
+ wizardInfo.setAgentPort(agentPort);
+ wizardInfo.setAdminPort(radmPort);
+ data.put(ConfigConstants.PR_AGENT_PORT, agentPort);
+ data.put(ConfigConstants.PR_RADM_PORT, radmPort);
+ data.put(ConfigConstants.PR_CERT_INSTANCE_NAME,
+ consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME));
+ boolean cloning = mWizardInfo.isCloning();
+ String selected_sub = mWizardInfo.getCloneSubsystem();
+ if (cloning && (selected_sub != null && selected_sub.equals("ca")))
+ data.put(Constants.PR_MASTER_AGENT_PORT, mPortText.getText().trim());
+
+ if (mEnableEEPorts) {
+ setEEPorts(wizardInfo, data);
+ data.put(ConfigConstants.PR_EE_PORTS_ENABLE, ConfigConstants.TRUE);
+ } else
+ data.put(ConfigConstants.PR_EE_PORTS_ENABLE, ConfigConstants.FALSE);
+
+ startProgressStatus();
+ boolean ready = configCertCgi.configCert(data);
+ endProgressStatus();
+
+ if (!ready) {
+ String str = configCertCgi.getErrorMessage();
+ if (str.equals("")) {
+ String errorMsg = mResource.getString(
+ PANELNAME+"_ERRORMSG");
+ setErrorMessage(errorMsg);
+ } else
+ setErrorMessage(str);
+ }
+
+ return ready;
+ }
+
+ public void callHelp() {
+ CMSAdminUtil.help(HELPINDEX);
+ }
+
+ protected void init() {
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ setLayout(gb);
+
+ JTextArea heading = createTextArea(mResource.getString(
+ "NETWORKWIZARD_TEXT_DESC_LABEL"));
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ add(heading, gbc);
+
+ JLabel adminSSLport = makeJLabel("ADMINSSLPORT");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.insets = new Insets(COMPONENT_SPACE, 0,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.fill = gbc.NONE;
+ add(adminSSLport, gbc);
+
+ mAdminSSLPortText = makeJTextField(10);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ //gbc.gridwidth = gbc.REMAINDER;
+ //gbc.fill = gbc.NONE;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ add(mAdminSSLPortText, gbc);
+ mActiveColor = mAdminSSLPortText.getBackground();
+
+ JLabel dummy2a = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ add(dummy2a, gbc);
+
+ JLabel agentPort = makeJLabel("AGENTSSLPORT");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.EAST;
+ gbc.insets = new Insets(0, 0, COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.fill = gbc.NONE;
+ add(agentPort, gbc);
+
+ mAgentSSLPortText = makeJTextField(10);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ //gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ //gbc.gridwidth = gbc.REMAINDER;
+ add(mAgentSSLPortText, gbc);
+
+ JLabel dummy2b = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ add(dummy2b, gbc);
+
+ mSSLPortLabel = makeJLabel("GATEWAYSSLPORT");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(0, 0, COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.anchor = gbc.EAST;
+ add(mSSLPortLabel, gbc);
+
+ mGatewaySSLPortText = makeJTextField(10);
+ CMSAdminUtil.resetGBC(gbc);
+ //gbc.fill = gbc.NONE;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ gbc.anchor = gbc.WEST;
+ //gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ add(mGatewaySSLPortText, gbc);
+
+ JLabel dummy2c = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ add(dummy2c, gbc);
+
+ mPortLabel = makeJLabel("GATEWAYPORT");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.WEST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE);
+ add(mPortLabel, gbc);
+
+ mGatewayPortText = makeJTextField(10);
+ CMSAdminUtil.resetGBC(gbc);
+ //gbc.fill = gbc.NONE;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ gbc.anchor = gbc.WEST;
+ add(mGatewayPortText, gbc);
+
+ // 610632 - remove the enable button
+
+ JLabel enableLbl = makeJLabel("ENABLED");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.fill = gbc.NONE;
+ gbc.anchor = gbc.CENTER;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ // add(enableLbl, gbc);
+
+ mEnable = new JCheckBox();
+ mEnable.addActionListener(this);
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.fill = gbc.NONE;
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ // add(mEnable, gbc);
+
+ JLabel dummy1 = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ add(dummy1, gbc);
+
+ CMSAdminUtil.resetGBC(gbc);
+ mAgentDesc = createTextArea(mResource.getString(
+ PANELNAME+"_TEXT_HEADING1_LABEL"));
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 1.0;
+ gbc.weighty = 0.0;
+ gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE,COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(mAgentDesc, gbc);
+
+ CMSAdminUtil.resetGBC(gbc);
+ mAgentPortLbl = makeJLabel("AGENTPORT");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ add(mAgentPortLbl, gbc);
+
+ CMSAdminUtil.resetGBC(gbc);
+ mPortText = makeJTextField(30);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ add(mPortText, gbc);
+
+ JLabel dummy2 = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ add(dummy2, gbc);
+
+ JLabel dummy = new JLabel(" ");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.fill = gbc.NONE;
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weighty = 1.0;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.gridheight = gbc.REMAINDER;
+ add(dummy, gbc);
+ }
+
+ public void getUpdateInfo(WizardInfo info) {
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ if (mEnable.isSelected()) {
+ enableFields(true, mActiveColor);
+ } else {
+ if (!mWarning && (mWizardInfo.isOCSPInstalled() || mWizardInfo.isOCSPServiceAdded())) {
+ mWarning = true;
+ String errormsg = mResource.getString(mPanelName+"_WARNING");
+ JOptionPane.showMessageDialog(mAdminFrame, errormsg, "Warning",
+ JOptionPane.WARNING_MESSAGE,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON));
+ } else {
+ enableFields(false, getBackground());
+ }
+ }
+ }
+
+ private void enableFields(boolean enable, Color color) {
+ mPortLabel.setEnabled(enable);
+ mGatewayPortText.setEnabled(enable);
+ mGatewayPortText.setEditable(enable);
+ mGatewayPortText.setBackground(color);
+ CMSAdminUtil.repaintComp(mPortLabel);
+ CMSAdminUtil.repaintComp(mGatewayPortText);
+ }
+}