diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java new file mode 100644 index 000000000..69e208be5 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java @@ -0,0 +1,201 @@ +// --- 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 com.netscape.admin.certsrv.security.CipherPreferenceDialog; +import com.netscape.management.client.util.*; +import javax.swing.*; +import java.awt.*; + +/** + * Allows user to select the SSL cipher preferences. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSCipherPreferenceDialog extends AbstractDialog { + + CMSSSL2CipherPreference ssl2CipherPref = null; + CMSSSL3CipherPreference ssl3CipherPref = null; + + public final static int SSL2 = 1; + public final static int SSL3 = 2; + private JPanel cipherPreferencePane; + boolean modified = true; + private static final ResourceSet mHelpResource = + new ResourceSet("com.netscape.admin.certsrv.certsrv-help"); + Help help; + + public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic) { + this(parent, isDomestic, false); + } + + public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic, + boolean hasFortezza) { + this(parent, isDomestic, hasFortezza, SSL2|SSL3); + } + + public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic, + boolean hasFortezza, int SSLVersion) { + + super(parent, "", true, OK | CANCEL | HELP); + cipherPreferencePane = new JPanel(); + cipherPreferencePane.setLayout(new BoxLayout(cipherPreferencePane, BoxLayout.Y_AXIS)); + if ((SSL2 & SSLVersion) == SSL2) { + ssl2CipherPref = new CMSSSL2CipherPreference(isDomestic); + cipherPreferencePane.add(ssl2CipherPref); + } + + if ((SSL3 & SSLVersion) == SSL3) { + ssl3CipherPref = new CMSSSL3CipherPreference(isDomestic, hasFortezza); + cipherPreferencePane.add(ssl3CipherPref); + } + + cipherPreferencePane.add(Box.createRigidArea(new Dimension(0,4))); + getContentPane().add(cipherPreferencePane); + pack(); + } + + public void removeSSLVersion(int sslVersion) { + switch (sslVersion) { + case SSL2: + cipherPreferencePane.remove(ssl2CipherPref); + break; + case SSL3: + cipherPreferencePane.remove(ssl3CipherPref); + break; + } + pack(); + } + + public boolean isCipherEnabled(String cipher) { + return (((ssl2CipherPref == null)?false:ssl2CipherPref.isCipherEnabled(cipher))|| + ((ssl3CipherPref == null)?false:ssl3CipherPref.isCipherEnabled(cipher))); + } + + public void setCipherEnabled(String cipher, boolean enable) { + if (ssl2CipherPref != null) { + ssl2CipherPref.setCipherEnabled(cipher, enable); + } + if (ssl3CipherPref != null) { + ssl3CipherPref.setCipherEnabled(cipher, enable); + } + } + + public String[] getSSLPreference(int sslVersion) { + String[] cipher = null; + switch(sslVersion) { + case SSL2: + cipher = ssl2CipherPref.getCipherList(); + break; + case SSL3: + cipher = ssl3CipherPref.getCipherList(); + break; + default: + break; + } + + return cipher; + } + + public boolean isSSLEnabled(int sslVersion) { + boolean enable = false; + switch (sslVersion) { + case SSL2: + enable = ssl2CipherPref.isEnabled(); + break; + + case SSL3: + enable = ssl3CipherPref.isEnabled(); + break; + + default: + break; + } + + return enable; + } + + public void setSSLEnabled(int sslVersion, boolean enable) { + switch (sslVersion) { + case SSL2: + ssl2CipherPref.setEnabled(enable); + break; + + case SSL3: + ssl3CipherPref.setEnabled(enable); + break; + + default: + break; + } + } + + public boolean isModified() { + return modified; + } + + public void reset() { + if (ssl2CipherPref != null) + ssl2CipherPref.reset(); + + if (ssl3CipherPref != null) + ssl3CipherPref.reset(); + } + + public void setSaved() { + if (ssl2CipherPref != null) { + ssl2CipherPref.setSaved(); + } + + if (ssl3CipherPref != null) { + ssl3CipherPref.setSaved(); + } + } + + public void setSaved(boolean saved) { + if (saved) { + if (ssl2CipherPref != null) { + ssl2CipherPref.setSaved(); + } + if (ssl3CipherPref != null) { + ssl3CipherPref.setSaved(); + } + } + } + + protected void cancelInvoked() { + reset(); + modified = false; + super.cancelInvoked(); + } + + protected void okInvoked() { + modified = (((ssl2CipherPref==null)?false:ssl2CipherPref.isModified()) || + ((ssl3CipherPref==null)?false:ssl3CipherPref.isModified())); + setSaved(); + super.okInvoked(); + } + + protected void helpInvoked() { + new Help(mHelpResource).help("configuration-overview"); +// help.help("SSL", "Preference"); + } +} + |