aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java
diff options
context:
space:
mode:
authorOmair Majid <[email protected]>2011-02-28 13:40:12 -0500
committerOmair Majid <[email protected]>2011-02-28 13:40:12 -0500
commit05dd25bd43df11fc874d857ced49bbe3c6e72a74 (patch)
treed8c54c16a4769b0861741e5960c694490d150526 /netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java
parent07456720398f6e19a68e500493f731ae46a8303a (diff)
Rename security warning classes to security dialog classes.
Some of the security dialogs that are shown are not warning dialogs. 2011-02-28 Omair Majid <[email protected]> Rename files * netx/net/sourceforge/jnlp/security/PasswordAuthenticationDialog.java: Rename to ... * netx/net/sourceforge/jnlp/security/PasswordAuthenticationPane.java: New file. * netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java: Rename to... * netx/net/sourceforge/jnlp/security/SecurityDialog.java: New file. * netx/net/sourceforge/jnlp/security/SecurityWarning.java: Rename to... * netx/net/sourceforge/jnlp/security/SecurityDialogs.java: New file. * netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java, * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java, * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java, * netx/net/sourceforge/jnlp/security/AccessWarningPane.java, * netx/net/sourceforge/jnlp/security/AppletWarningPane.java, * netx/net/sourceforge/jnlp/security/CertWarningPane.java, * netx/net/sourceforge/jnlp/security/CertsInfoPane.java, * netx/net/sourceforge/jnlp/security/JNLPAuthenticator.java, * netx/net/sourceforge/jnlp/security/MoreInfoPane.java, * netx/net/sourceforge/jnlp/security/NotAllSignedWarningPane.java, * netx/net/sourceforge/jnlp/security/SecurityDialogMessage.java, * netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java, * netx/net/sourceforge/jnlp/security/SecurityDialogPanel.java, * netx/net/sourceforge/jnlp/security/SingleCertInfoPane.java, * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java, * netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java, * netx/net/sourceforge/jnlp/services/ServiceUtil.java, * netx/net/sourceforge/jnlp/services/XClipboardService.java, * netx/net/sourceforge/jnlp/services/XExtendedService.java, * netx/net/sourceforge/jnlp/services/XFileOpenService.java, * netx/net/sourceforge/jnlp/services/XFileSaveService.java: Update class names to the new classes.
Diffstat (limited to 'netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java')
-rw-r--r--netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java369
1 files changed, 0 insertions, 369 deletions
diff --git a/netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java b/netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java
deleted file mode 100644
index 2bf829f..0000000
--- a/netx/net/sourceforge/jnlp/security/SecurityWarningDialog.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/* SecurityWarningDialog.java
- Copyright (C) 2008 Red Hat, Inc.
-
-This file is part of IcedTea.
-
-IcedTea 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.
-
-IcedTea 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 IcedTea; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version.
-*/
-
-package net.sourceforge.jnlp.security;
-
-import net.sourceforge.jnlp.JNLPFile;
-import net.sourceforge.jnlp.runtime.JNLPRuntime;
-import net.sourceforge.jnlp.security.SecurityWarning.AccessType;
-import net.sourceforge.jnlp.security.SecurityWarning.DialogType;
-
-import java.awt.*;
-
-import javax.swing.*;
-
-import java.awt.event.*;
-import java.security.cert.X509Certificate;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import java.util.List;
-
-/**
- * Provides methods for showing security warning dialogs for a wide range of
- * JNLP security issues. Note that the security dialogs should be running in the
- * secure AppContext - this class should not be used directly from an applet or
- * application. See {@link SecurityWarning} for a way to show security dialogs.
- *
- * @author <a href="mailto:[email protected]">Joshua Sumali</a>
- */
-public class SecurityWarningDialog extends JDialog {
-
- /** The type of dialog we want to show */
- private DialogType dialogType;
-
- /** The type of access that this dialog is for */
- private AccessType accessType;
-
- private SecurityDialogPanel panel;
-
- /** The application file associated with this security warning */
- private JNLPFile file;
-
- private CertVerifier certVerifier;
-
- private X509Certificate cert;
-
- /** An optional String array that's only necessary when a dialog
- * label requires some parameters (e.g. showing which address an application
- * is trying to connect to).
- */
- private Object[] extras;
-
- /** Whether or not this object has been fully initialized */
- private boolean initialized = false;
-
- /**
- * the return value of this dialog. result: 0 = Yes, 1 = No, 2 = Cancel,
- * null = Window closed.
- */
- private Object value;
-
- SecurityWarningDialog(DialogType dialogType, AccessType accessType,
- JNLPFile file, CertVerifier jarSigner, X509Certificate cert, Object[] extras) {
- super();
- this.dialogType = dialogType;
- this.accessType = accessType;
- this.file = file;
- this.certVerifier = jarSigner;
- this.cert = cert;
- this.extras = extras;
- initialized = true;
-
- initDialog();
- }
-
- /**
- * Construct a SecurityWarningDialog to display some sort of access warning
- */
- SecurityWarningDialog(DialogType dialogType, AccessType accessType,
- JNLPFile file) {
- this(dialogType, accessType, file, null, null, null);
- }
-
- /**
- * Create a SecurityWarningDialog to display a certificate-related warning
- */
- SecurityWarningDialog(DialogType dialogType, AccessType accessType,
- JNLPFile file, CertVerifier jarSigner) {
- this(dialogType, accessType, file, jarSigner, null, null);
- }
-
- /**
- * Create a SecurityWarningDialog to display a certificate-related warning
- */
- SecurityWarningDialog(DialogType dialogType, AccessType accessType,
- CertVerifier certVerifier) {
- this(dialogType, accessType, null, certVerifier, null, null);
- }
-
- /**
- * Create a SecurityWarningDialog to display some sort of access warning
- * with more information
- */
- SecurityWarningDialog(DialogType dialogType, AccessType accessType,
- JNLPFile file, Object[] extras) {
- this(dialogType, accessType, file, null, null, extras);
- }
-
- /**
- * Create a SecurityWarningDailog to display information about a single
- * certificate
- */
- SecurityWarningDialog(DialogType dialogType, X509Certificate c) {
- this(dialogType, null, null, null, c, null);
- }
-
- /**
- * Returns if this dialog has been fully initialized yet.
- * @return true if this dialog has been initialized, and false otherwise.
- */
- public boolean isInitialized() {
- return initialized;
- }
-
- /**
- * Shows more information regarding jar code signing
- *
- * @param jarSigner the JarSigner used to verify this application
- * @param parent the parent option pane
- */
- public static void showMoreInfoDialog(
- CertVerifier jarSigner, SecurityWarningDialog parent) {
-
- SecurityWarningDialog dialog =
- new SecurityWarningDialog(DialogType.MORE_INFO, null, null,
- jarSigner);
- dialog.setModalityType(ModalityType.APPLICATION_MODAL);
- dialog.setVisible(true);
- dialog.dispose();
- }
-
- /**
- * Displays CertPath information in a readable table format.
- *
- * @param jarSigner the JarSigner used to verify this application
- * @param parent the parent option pane
- */
- public static void showCertInfoDialog(CertVerifier jarSigner,
- SecurityWarningDialog parent) {
- SecurityWarningDialog dialog = new SecurityWarningDialog(DialogType.CERT_INFO,
- null, null, jarSigner);
- dialog.setLocationRelativeTo(parent);
- dialog.setModalityType(ModalityType.APPLICATION_MODAL);
- dialog.setVisible(true);
- dialog.dispose();
- }
-
- /**
- * Displays a single certificate's information.
- *
- * @param c the X509 certificate.
- * @param parent the parent pane.
- */
- public static void showSingleCertInfoDialog(X509Certificate c,
- JDialog parent) {
- SecurityWarningDialog dialog = new SecurityWarningDialog(DialogType.SINGLE_CERT_INFO, c);
- dialog.setLocationRelativeTo(parent);
- dialog.setModalityType(ModalityType.APPLICATION_MODAL);
- dialog.setVisible(true);
- dialog.dispose();
- }
-
- private void initDialog() {
- setSystemLookAndFeel();
-
- String dialogTitle = "";
- if (dialogType == DialogType.CERT_WARNING)
- dialogTitle = "Warning - Security";
- else if (dialogType == DialogType.MORE_INFO)
- dialogTitle = "More Information";
- else if (dialogType == DialogType.CERT_INFO)
- dialogTitle = "Details - Certificate";
- else if (dialogType == DialogType.ACCESS_WARNING)
- dialogTitle = "Security Warning";
- else if (dialogType == DialogType.APPLET_WARNING)
- dialogTitle = "Applet Warning";
- else if (dialogType == DialogType.NOTALLSIGNED_WARNING)
- dialogTitle = "Security Warning";
-
- setTitle(dialogTitle);
- setModalityType(ModalityType.MODELESS);
-
- setDefaultCloseOperation(DISPOSE_ON_CLOSE);
-
- installPanel();
-
- pack();
-
- WindowAdapter adapter = new WindowAdapter() {
- private boolean gotFocus = false;
-
- @Override
- public void windowGainedFocus(WindowEvent we) {
- // Once window gets focus, set initial focus
- if (!gotFocus) {
- selectDefaultButton();
- gotFocus = true;
- }
- }
-
- @Override
- public void windowOpened(WindowEvent e) {
- if (e.getSource() instanceof SecurityWarningDialog) {
- SecurityWarningDialog dialog = (SecurityWarningDialog) e.getSource();
- dialog.setResizable(true);
- centerDialog(dialog);
- dialog.setValue(null);
- }
- }
- };
- addWindowListener(adapter);
- addWindowFocusListener(adapter);
-
- }
-
- public AccessType getAccessType() {
- return accessType;
- }
-
- public JNLPFile getFile() {
- return file;
- }
-
- public CertVerifier getJarSigner() {
- return certVerifier;
- }
-
- public X509Certificate getCert() {
- return cert;
- }
-
- /**
- * Adds the appropriate JPanel to this Dialog, based on {@link DialogType}.
- */
- private void installPanel() {
-
- if (dialogType == DialogType.CERT_WARNING)
- panel = new CertWarningPane(this, this.certVerifier);
- else if (dialogType == DialogType.MORE_INFO)
- panel = new MoreInfoPane(this, this.certVerifier);
- else if (dialogType == DialogType.CERT_INFO)
- panel = new CertsInfoPane(this, this.certVerifier);
- else if (dialogType == DialogType.SINGLE_CERT_INFO)
- panel = new SingleCertInfoPane(this, this.certVerifier);
- else if (dialogType == DialogType.ACCESS_WARNING)
- panel = new AccessWarningPane(this, extras, this.certVerifier);
- else if (dialogType == DialogType.APPLET_WARNING)
- panel = new AppletWarningPane(this, this.certVerifier);
- else if (dialogType == DialogType.NOTALLSIGNED_WARNING)
- panel = new NotAllSignedWarningPane(this);
-
- add(panel, BorderLayout.CENTER);
- }
-
- private static void centerDialog(JDialog dialog) {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dialogSize = dialog.getSize();
-
- dialog.setLocation((screen.width - dialogSize.width) / 2,
- (screen.height - dialogSize.height) / 2);
- }
-
- private void selectDefaultButton() {
- if (panel == null) {
- System.out.println("initial value panel is null");
- }
- panel.requestFocusOnDefaultButton();
- }
-
- protected void setValue(Object value) {
- if (JNLPRuntime.isDebug()) {
- System.out.println("Setting value:" + value);
- }
- this.value = value;
- }
-
- public Object getValue() {
- if (JNLPRuntime.isDebug()) {
- System.out.println("Returning value:" + value);
- }
- return value;
- }
-
- /**
- * Called when the SecurityWarningDialog is hidden - either because the user
- * made a choice (Ok, Cancel, etc) or closed the window
- */
- @Override
- public void dispose() {
- notifySelectionMade();
- super.dispose();
- }
-
- /**
- * Updates the look and feel of the window to be the system look and feel
- */
- protected void setSystemLookAndFeel() {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e) {
- //don't worry if we can't.
- }
- }
-
- private List<ActionListener> listeners = new CopyOnWriteArrayList<ActionListener>();
-
- /**
- * Notify all the listeners that the user has made a decision using this
- * security dialog.
- */
- public void notifySelectionMade() {
- for (ActionListener listener : listeners) {
- listener.actionPerformed(null);
- }
- }
-
- /**
- * Adds an {@link ActionListener} which will be notified if the user makes a
- * choice using this SecurityWarningDialog. The listener should use {@link #getValue()}
- * to actually get the user's response.
- */
- public void addActionListener(ActionListener listener) {
- listeners.add(listener);
- }
-
-}