aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java')
-rw-r--r--netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java b/netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java
new file mode 100644
index 0000000..18d574a
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/controlpanel/SecuritySettingsPanel.java
@@ -0,0 +1,141 @@
+/* SecuritySettingsPanel.java -- Display possible security settings.
+Copyright (C) 2010 Red Hat
+
+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; either version 2 of the License, or
+(at your option) any later version.
+
+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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package net.sourceforge.jnlp.controlpanel;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.Box;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import net.sourceforge.jnlp.runtime.DeploymentConfiguration;
+import net.sourceforge.jnlp.runtime.Translator;
+
+/**
+ * This provides a way for the user to modify the security settings through a
+ * GUI.
+ *
+ * @author Andrew Su ([email protected], [email protected])
+ *
+ */
+@SuppressWarnings("serial")
+public class SecuritySettingsPanel extends NamedBorderPanel implements ActionListener {
+
+ private DeploymentConfiguration config;
+
+ // NOTE: All the ones listed with "Default" are in Oracle's implementation.
+ // Not shown on deployments.properties webpage. Add support for these later!
+ /** List of properties used by this panel */
+ public static String[] properties = { "deployment.security.askgrantdialog.show",
+ "deployment.security.askgrantdialog.notinca",
+ "deployment.security.browser.keystore.use", // default TRUE
+ "deployment.security.clientauth.keystore.auto", // Default FALSE
+ "deployment.security.jsse.hostmismatch.warning",
+ "deployment.security.https.warning.show", // Default FALSE
+ "deployment.security.sandbox.awtwarningwindow",
+ "deployment.security.sandbox.jnlp.enhanced",
+ "deployment.security.validation.crl", // Default TRUE
+ "deployment.security.validation.ocsp", // Default FALSE
+ "deployment.security.pretrust.list", // Default TRUE
+ "deployment.security.blacklist.check", // Default TRUE
+ "deployment.security.password.cache", // Default TRUE
+ "deployment.security.SSLv2Hello", // Default FALSE
+ "deployment.security.SSLv3", // Default TRUE
+ "deployment.security.TLSv1", // Default TRUE
+// "deployment.security.mixcode", // Default TRUE
+ };
+
+ /**
+ * This creates a new instance of the security settings panel.
+ *
+ * @param config
+ * Loaded DeploymentConfiguration file.
+ */
+ public SecuritySettingsPanel(DeploymentConfiguration config) {
+ super(Translator.R("CPHeadSecurity"), new BorderLayout());
+ this.config = config;
+
+ addComponents();
+ }
+
+ /**
+ * Add the components to the panel.
+ */
+ private void addComponents() {
+ JPanel topPanel = new JPanel(new GridBagLayout());
+ GridBagConstraints c = new GridBagConstraints();
+
+ JLabel description = new JLabel("<html>" + Translator.R("CPSecurityDescription") + "<hr /></html>");
+
+ JCheckBox[] securityGeneralOptions = { new JCheckBox(Translator.R("SGPAllowUserGrantSigned")),
+ new JCheckBox(Translator.R("SGPAllowUserGrantUntrust")),
+ new JCheckBox(Translator.R("SGpUseBrowserKeystore")),
+ new JCheckBox(Translator.R("SGPUsePersonalCertOneMatch")),
+ new JCheckBox(Translator.R("SGPWarnCertHostMismatch")),
+ new JCheckBox(Translator.R("SGPShowValid")),
+ new JCheckBox(Translator.R("SGPShowSandboxWarning")),
+ new JCheckBox(Translator.R("SGPAllowUserAcceptJNLPSecurityRequests")),
+ new JCheckBox(Translator.R("SGPCheckCertRevocationList")),
+ new JCheckBox(Translator.R("SGPEnableOnlineCertValidate")),
+ new JCheckBox(Translator.R("SGPEnableTrustedPublisherList")),
+ new JCheckBox(Translator.R("SGPEnableBlacklistRevocation")),
+ new JCheckBox(Translator.R("SGPEnableCachingPassword")),
+ new JCheckBox(Translator.R("SGPUseSSL2")),
+ new JCheckBox(Translator.R("SGPUseSSL3")),
+ new JCheckBox(Translator.R("SGPUseTLS1")), };
+
+ c.fill = GridBagConstraints.BOTH;
+ c.gridx = 0;
+ c.weightx = 1;
+
+ topPanel.add(description, c);
+
+ // Only display the ones with properties that are valid or existent.
+ for (int i = 0; i < properties.length; i++) {
+ try {
+ String s = config.getProperty(properties[i]);
+ securityGeneralOptions[i].setSelected(Boolean.parseBoolean(s));
+ securityGeneralOptions[i].setActionCommand(properties[i]);
+ securityGeneralOptions[i].addActionListener(this);
+ c.gridy = i + 1;
+ topPanel.add(securityGeneralOptions[i], c);
+ } catch (Exception e) {
+ securityGeneralOptions[i] = null;
+ }
+ }
+
+ Component filler = Box.createRigidArea(new Dimension(1, 1));
+ c.weighty = 1;
+ c.gridy++;
+ topPanel.add(filler, c);
+
+ add(topPanel, BorderLayout.CENTER);
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ config.setProperty(e.getActionCommand(), String.valueOf(((JCheckBox) e.getSource()).isSelected()));
+ }
+}