/hg/icedtea-web: Implemented general solution for remembering of...
jvanek at icedtea.classpath.org
jvanek at icedtea.classpath.org
Fri Jun 12 14:49:43 UTC 2015
changeset 0afcc93fb7fb in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0afcc93fb7fb
author: Jiri Vanek <jvanek at redhat.com>
date: Fri Jun 12 16:49:07 2015 +0200
Implemented general solution for remembering of various dialogues
diffstat:
ChangeLog | 5 +
netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletActionTableModel.java | 32 +-
netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java | 63 +-
netx/net/sourceforge/jnlp/resources/Messages.properties | 4 +-
netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java | 2 +-
netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java | 59 +-
netx/net/sourceforge/jnlp/security/SecurityDialogs.java | 70 +-
netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java | 11 +-
netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletActionEntry.java | 2 +-
netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletActionStorage.java | 9 +-
netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java | 110 +-
netx/net/sourceforge/jnlp/security/appletextendedsecurity/impl/UnsignedAppletActionStorageExtendedImpl.java | 28 +-
netx/net/sourceforge/jnlp/security/appletextendedsecurity/impl/UnsignedAppletActionStorageImpl.java | 15 +-
netx/net/sourceforge/jnlp/security/dialogresults/AccessWarningPaneComplexReturn.java | 48 +-
netx/net/sourceforge/jnlp/security/dialogresults/BasicDialogValue.java | 25 +-
netx/net/sourceforge/jnlp/security/dialogresults/Yes.java | 16 +
netx/net/sourceforge/jnlp/security/dialogresults/YesCancel.java | 4 +-
netx/net/sourceforge/jnlp/security/dialogresults/YesNo.java | 2 +-
netx/net/sourceforge/jnlp/security/dialogresults/YesNoCancel.java | 2 +-
netx/net/sourceforge/jnlp/security/dialogresults/YesNoSandbox.java | 4 +-
netx/net/sourceforge/jnlp/security/dialogresults/YesNoSandboxLimited.java | 75 ++
netx/net/sourceforge/jnlp/security/dialogs/AccessWarningPane.java | 57 +-
netx/net/sourceforge/jnlp/security/dialogs/MissingALACAttributePanel.java | 36 +-
netx/net/sourceforge/jnlp/security/dialogs/MissingPermissionsAttributePanel.java | 38 +-
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/AppTrustWarningPanel.java | 51 +-
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/MatchingALACAttributePanel.java | 15 +-
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/PartiallySignedAppTrustWarningPanel.java | 21 +-
netx/net/sourceforge/jnlp/security/dialogs/apptrustwarningpanel/UnsignedAppletTrustWarningPanel.java | 11 +-
netx/net/sourceforge/jnlp/security/dialogs/remember/ActionChoiceListener.java | 47 -
netx/net/sourceforge/jnlp/security/dialogs/remember/AppSigningWarningAction.java | 59 -
netx/net/sourceforge/jnlp/security/dialogs/remember/AppletSecurityActions.java | 218 ++++-
netx/net/sourceforge/jnlp/security/dialogs/remember/ExecuteAppletAction.java | 27 +-
netx/net/sourceforge/jnlp/security/dialogs/remember/RemeberActionProvider.java | 45 +
netx/net/sourceforge/jnlp/security/dialogs/remember/RememberDialog.java | 129 +++
netx/net/sourceforge/jnlp/security/dialogs/remember/RememberPanel.java | 101 +--
netx/net/sourceforge/jnlp/security/dialogs/remember/RememberPanelResult.java | 64 +
netx/net/sourceforge/jnlp/security/dialogs/remember/RememberableDialog.java | 52 +
netx/net/sourceforge/jnlp/security/dialogs/remember/SavedRememberAction.java | 85 ++
netx/net/sourceforge/jnlp/services/ServiceUtil.java | 10 +-
tests/netx/unit/net/sourceforge/jnlp/security/SecurityDialogsTest.java | 169 +++-
tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/impl/LegacyUnsignedAppletActionStorageImplTest.java | 228 ++++++
tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/impl/UnsignedAppletActionStorageImplTest.java | 353 ++++++---
tests/netx/unit/net/sourceforge/jnlp/security/dialogs/remember/AppletSecurityActionsTest.java | 157 ++-
tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java | 2 +-
44 files changed, 1770 insertions(+), 791 deletions(-)
diffs (truncated from 4111 to 500 lines):
diff -r 21aca3386c4f -r 0afcc93fb7fb ChangeLog
--- a/ChangeLog Thu Jun 11 13:24:54 2015 +0200
+++ b/ChangeLog Fri Jun 12 16:49:07 2015 +0200
@@ -1,3 +1,8 @@
+2015-06-12 Jiri Vanek <jvanek at redhat.com>
+
+ Implemented general solution for remembering of various dialogues
+ * todo: changelog and javadoc and news
+
2015-06-11 Jiri Vanek <jvanek at redhat.com>
AppletSecurityActions, ExecuteAppletAction, AppletSecurityActionsTest moved to remember package
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletActionTableModel.java
--- a/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletActionTableModel.java Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletActionTableModel.java Fri Jun 12 16:49:07 2015 +0200
@@ -39,17 +39,16 @@
import javax.swing.event.TableModelEvent;
import javax.swing.table.AbstractTableModel;
import net.sourceforge.jnlp.runtime.Translator;
-import net.sourceforge.jnlp.security.dialogs.remember.AppletSecurityActions;
-import net.sourceforge.jnlp.security.dialogs.remember.ExecuteAppletAction;
import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletActionEntry;
import net.sourceforge.jnlp.security.appletextendedsecurity.UrlRegEx;
import net.sourceforge.jnlp.security.appletextendedsecurity.impl.UnsignedAppletActionStorageExtendedImpl;
+import net.sourceforge.jnlp.security.dialogs.remember.AppletSecurityActions;
+import net.sourceforge.jnlp.security.dialogs.remember.ExecuteAppletAction;
public class UnsignedAppletActionTableModel extends AbstractTableModel {
final UnsignedAppletActionStorageExtendedImpl back;
- private final String[] columns = new String[]{Translator.R("APPEXTSECguiTableModelTableColumnActionUA"),
- Translator.R("APPEXTSECguiTableModelTableColumnActionMatchALACA"),
+ private final String[] columns = new String[]{Translator.R("APPEXTSECguiTableModelTableColumnRD"),
Translator.R("APPEXTSECguiTableModelTableColumnDateOfAction"),
Translator.R("APPEXTSECguiTableModelTableColumnDocumentBase"),
Translator.R("APPEXTSECguiTableModelTableColumnCodeBase"),
@@ -80,18 +79,15 @@
return AppletSecurityActions.class;
}
if (columnIndex == 1) {
- return AppletSecurityActions.class;
+ return Date.class;
}
if (columnIndex == 2) {
- return Date.class;
+ return UrlRegEx.class;
}
if (columnIndex == 3) {
return UrlRegEx.class;
}
if (columnIndex == 4) {
- return UrlRegEx.class;
- }
- if (columnIndex == 5) {
return String.class;
}
return Object.class;
@@ -102,11 +98,12 @@
if (back.isReadOnly()) {
return false;
}
- if (columnIndex == 2) {
+ if (columnIndex == 1) {
return false;
}
+ //FIXME add editor
if (columnIndex == 0) {
- return true;
+ return true;
}
if (getValueAt(rowIndex, columnIndex - 1) == null || getValueAt(rowIndex, columnIndex - 1).toString().trim().isEmpty()) {
return false;
@@ -119,21 +116,18 @@
UnsignedAppletActionEntry source = back.toArray()[rowIndex];
if (columnIndex == 0) {
- return source.getAppletSecurityActions().getUnsignedAppletAction();
+ return source.getAppletSecurityActions();
}
if (columnIndex == 1) {
- return source.getAppletSecurityActions().getMatchingAlacaAction();
+ return source.getTimeStamp();
}
if (columnIndex == 2) {
- return source.getTimeStamp();
+ return source.getDocumentBase();
}
if (columnIndex == 3) {
- return source.getDocumentBase();
+ return source.getCodeBase();
}
if (columnIndex == 4) {
- return source.getCodeBase();
- }
- if (columnIndex == 5) {
return UnsignedAppletActionEntry.createArchivesString(source.getArchives());
}
return null;
@@ -150,7 +144,7 @@
int i = getRowCount()-1;
String s = "\\Qhttp://localhost:80/\\E.*";
back.add(new UnsignedAppletActionEntry(
- AppletSecurityActions.createDefault(),
+ new AppletSecurityActions(),
new Date(),
new UrlRegEx(s),
new UrlRegEx(s),
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java
--- a/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Fri Jun 12 16:49:07 2015 +0200
@@ -47,6 +47,7 @@
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -87,13 +88,13 @@
import net.sourceforge.jnlp.config.DeploymentConfiguration;
import net.sourceforge.jnlp.config.PathsAndFiles;
import net.sourceforge.jnlp.runtime.Translator;
-import net.sourceforge.jnlp.security.dialogs.remember.AppletSecurityActions;
import net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityLevel;
-import net.sourceforge.jnlp.security.dialogs.remember.ExecuteAppletAction;
import net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp;
import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletActionEntry;
import net.sourceforge.jnlp.security.appletextendedsecurity.UrlRegEx;
import net.sourceforge.jnlp.security.appletextendedsecurity.impl.UnsignedAppletActionStorageExtendedImpl;
+import net.sourceforge.jnlp.security.dialogs.remember.AppletSecurityActions;
+import net.sourceforge.jnlp.security.dialogs.remember.ExecuteAppletAction;
import net.sourceforge.jnlp.util.ScreenFinder;
import net.sourceforge.jnlp.util.logging.OutputController;
@@ -729,20 +730,16 @@
@Override
public TableCellEditor getCellEditor(int row, int column) {
int columnx = convertColumnIndexToModel(column);
- if (columnx == 0 || columnx == 1) {
- return new DefaultCellEditor(new JComboBox<>(new ExecuteAppletAction[] {
- ExecuteAppletAction.ALWAYS,
- ExecuteAppletAction.NEVER,
- ExecuteAppletAction.YES,
- ExecuteAppletAction.NO,
- ExecuteAppletAction.UNSET }));
+ if (columnx == 0) {
+ //FIXME add proper editor her egoes jbutton, popupr dialog
+ return new DefaultCellEditor(new JTextField());
}
- if (columnx == 3) {
+ if (columnx == 2) {
column = convertColumnIndexToModel(column);
row = convertRowIndexToModel(row);
return new DefaultCellEditor(new MyTextField((UrlRegEx) (model.getValueAt(row, column))));
}
- if (columnx == 4) {
+ if (columnx == 3) {
column = convertColumnIndexToModel(column);
row = convertRowIndexToModel(row);
return new DefaultCellEditor(new MyTextField((UrlRegEx) (model.getValueAt(row, column))));
@@ -753,19 +750,19 @@
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
int columnx = convertColumnIndexToModel(column);
- if (columnx == 2) {
+ if (columnx == 1) {
column = convertColumnIndexToModel(column);
row = convertRowIndexToModel(row);
return new UrlRegexCellRenderer.MyDateCellRenderer((Date) (model.getValueAt(row, column)));
}
- if (columnx == 3) {
+ if (columnx == 2) {
if (!filterRegexesCheckBox.isSelected()) {
column = convertColumnIndexToModel(column);
row = convertRowIndexToModel(row);
return new UrlRegexCellRenderer((UrlRegEx) (model.getValueAt(row, column)));
}
}
- if (columnx == 4) {
+ if (columnx == 3) {
if (!filterRegexesCheckBox.isSelected()) {
column = convertColumnIndexToModel(column);
row = convertRowIndexToModel(row);
@@ -799,10 +796,10 @@
for (UnsignedAppletActionEntry unsignedAppletActionEntry : items) {
AppletSecurityActions actions = unsignedAppletActionEntry.getAppletSecurityActions();
for (int j = 0; j < actions.getRealCount(); j++) {
- ExecuteAppletAction action = actions.getAction(j);
- if (action == unsignedAppletAction) {
- toBeDeleted.add(unsignedAppletActionEntry);
- }
+// ExecuteAppletAction action = actions.getAction(j);
+// if (action == unsignedAppletAction) {
+// toBeDeleted.add(unsignedAppletActionEntry);
+// }
}
}
String s = Translator.R("APPEXTSECguiPanelConfirmDeletionOf", toBeDeleted.size()) + ": \n";
@@ -940,8 +937,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.ALWAYS) || o.equals(ExecuteAppletAction.NEVER)) {
return true;
}
@@ -954,8 +952,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.ALWAYS)) {
return true;
}
@@ -969,8 +968,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.NEVER)) {
return true;
}
@@ -983,8 +983,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.YES) || o.equals(ExecuteAppletAction.NO)) {
return true;
}
@@ -997,8 +998,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.YES)) {
return true;
}
@@ -1012,8 +1014,9 @@
@Override
public boolean include(Entry<? extends UnsignedAppletActionTableModel, ? extends Integer> entry) {
- for (int i = 0; i < AppletSecurityActions.REMEMBER_COLUMNS_COUNT; i++) {
- ExecuteAppletAction o = (ExecuteAppletAction) entry.getModel().getValueAt(entry.getIdentifier(), i);
+ AppletSecurityActions as = (AppletSecurityActions) entry.getModel().getValueAt(entry.getIdentifier(), 0);
+ Collection<ExecuteAppletAction> l = as.getActions();
+ for (ExecuteAppletAction o : l) {
if (o.equals(ExecuteAppletAction.NO)) {
return true;
}
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Jun 12 16:49:07 2015 +0200
@@ -1092,10 +1092,8 @@
APPEXTSECunsignedAppletActionYes=This applet was visited and allowed
APPEXTSecunsignedAppletActionSandbox=This applet was visited and allowed to run with restricted privileges
APPEXTSECunsignedAppletActionNo=This applet was visited and denied
-APPEXTSECunsetAppletAction=This applet has not yet asked for this action
APPEXTSECControlPanelExtendedAppletSecurityTitle=Extended applet security
-APPEXTSECguiTableModelTableColumnActionUA=Unsigned applet Action
-APPEXTSECguiTableModelTableColumnActionMatchALACA=Library Action
+APPEXTSECguiTableModelTableColumnRD=Remembered decisions
APPEXTSECguiTableModelTableColumnDateOfAction=Date of action
APPEXTSECguiTableModelTableColumnDocumentBase=Document-base
APPEXTSECguiTableModelTableColumnCodeBase=Code-base
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java
--- a/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Fri Jun 12 16:49:07 2015 +0200
@@ -185,7 +185,7 @@
return;
}
AccessWarningPaneComplexReturn ics = getComplexReturn(sd);
- if (ics.toBoolean()) {
+ if (ics !=null && ics.toBoolean()) {
entry.createDesktopShortcuts(ics.getMenu(), ics.getDekstop(), isSigned());
}
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java
--- a/netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/security/SecurityDialogMessageHandler.java Fri Jun 12 16:49:07 2015 +0200
@@ -41,6 +41,10 @@
import java.awt.event.ActionListener;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation;
+import net.sourceforge.jnlp.security.dialogs.remember.RememberDialog;
+import net.sourceforge.jnlp.security.dialogs.remember.RememberableDialog;
+import net.sourceforge.jnlp.security.dialogs.remember.SavedRememberAction;
import sun.awt.AppContext;
@@ -63,7 +67,7 @@
* {@link SecurityDialogMessage#userResponse} to the appropriate value.
* </p>
*/
-public final class SecurityDialogMessageHandler implements Runnable {
+public class SecurityDialogMessageHandler implements Runnable {
/** the queue of incoming messages to show security dialogs */
private BlockingQueue<SecurityDialogMessage> queue = new LinkedBlockingQueue<SecurityDialogMessage>();
@@ -96,31 +100,50 @@
* @param message the message indicating what type of security dialog to
* show
*/
- private void handleMessage(SecurityDialogMessage message) {
- final SecurityDialogMessage msg = message;
+ protected void handleMessage(final SecurityDialogMessage message) {
final SecurityDialog dialog = new SecurityDialog(message.dialogType,
message.accessType, message.file, message.certVerifier, message.certificate, message.extras);
+
+ final RememberableDialog found = RememberDialog.getInstance().findRememberablePanel(dialog);
+ SavedRememberAction action = null;
+ if (found!=null){
+ action = RememberDialog.getInstance().getRememberedState(found);
+ }
+ if (action != null && action.isRemember()) {
+ message.userResponse = found.readValue(action.getSavedValue());
+ UnsignedAppletTrustConfirmation.updateAppletAction(found.getFile(), action, null, (Class<RememberableDialog>) found.getClass());
+ unlockMessagesClient(message);
+ } else {
+ dialog.addActionListener(new ActionListener() {
- dialog.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if (found == null) {
+ message.userResponse = dialog.getValue();
+ } else {
+ message.userResponse = found.getValue();
+ RememberDialog.getInstance().setOrUpdateRememberedState(dialog);
+ }
+ unlockMessagesClient(message);
+ }
- @Override
- public void actionPerformed(ActionEvent e) {
- msg.userResponse = dialog.getValue();
- /* Allow the client to continue on the other side */
- if (msg.toDispose != null) {
- msg.toDispose.dispose();
- }
- if (msg.lock != null) {
- msg.lock.release();
- }
- }
- });
- dialog.setVisible(true);
+ });
+ dialog.setVisible(true);
+ }
}
- /**
+ protected void unlockMessagesClient(final SecurityDialogMessage msg) {
+ /* Allow the client to continue on the other side */
+ if (msg.toDispose != null) {
+ msg.toDispose.dispose();
+ }
+ if (msg.lock != null) {
+ msg.lock.release();
+ }
+ }
+ /**
* Post a message to the security event queue. This message will be picked
* up by the security thread and used to show the appropriate security
* dialog.
diff -r 21aca3386c4f -r 0afcc93fb7fb netx/net/sourceforge/jnlp/security/SecurityDialogs.java
--- a/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Jun 11 13:24:54 2015 +0200
+++ b/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Fri Jun 12 16:49:07 2015 +0200
@@ -54,16 +54,12 @@
import net.sourceforge.jnlp.config.DeploymentConfiguration;
import net.sourceforge.jnlp.runtime.JNLPClassLoader.SecurityDelegate;
import net.sourceforge.jnlp.runtime.JNLPRuntime;
-import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation;
-import static net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation.getStoredAction;
import net.sourceforge.jnlp.security.dialogresults.AccessWarningPaneComplexReturn;
import net.sourceforge.jnlp.security.dialogresults.DialogResult;
import net.sourceforge.jnlp.security.dialogresults.NamePassword;
+import net.sourceforge.jnlp.security.dialogresults.YesNo;
import net.sourceforge.jnlp.security.dialogresults.YesNoSandbox;
-import net.sourceforge.jnlp.security.dialogs.remember.AppSigningWarningAction;
-import net.sourceforge.jnlp.security.dialogs.remember.AppletSecurityActions;
-import net.sourceforge.jnlp.security.dialogs.remember.ExecuteAppletAction;
-import net.sourceforge.jnlp.security.dialogs.remember.RememberPanel;
+import net.sourceforge.jnlp.security.dialogresults.YesNoSandboxLimited;
import net.sourceforge.jnlp.util.UrlUtils;
import net.sourceforge.jnlp.util.logging.OutputController;
@@ -150,21 +146,23 @@
* @param file the file to be base as information source for this dialogue
* @return true if permission was granted by the user, false otherwise.
*/
- public static AppSigningWarningAction showUnsignedWarningDialog(JNLPFile file) {
+ public static YesNoSandboxLimited showUnsignedWarningDialog(JNLPFile file) {
if (!shouldPromptUser()) {
if (JNLPRuntime.isTrustAll()) {
- return new AppSigningWarningAction(ExecuteAppletAction.YES, false);
+ return YesNoSandboxLimited.yes();
} else {
- return new AppSigningWarningAction(ExecuteAppletAction.NO, false);
+ return YesNoSandboxLimited.no();
}
}
final SecurityDialogMessage message = new SecurityDialogMessage(file);
message.dialogType = DialogType.UNSIGNED_WARNING;
message.accessType = AccessType.UNSIGNED;
+
+ DialogResult r = getUserResponse(message);
- return ((RememberPanel.Garbage) getUserResponse(message)).getAction();
+ return (YesNoSandboxLimited) r;
}
/**
@@ -212,14 +210,14 @@
* @param securityDelegate the delegate for security atts.
* @return true if permission was granted by the user, false otherwise.
*/
- public static AppSigningWarningAction showPartiallySignedWarningDialog(JNLPFile file, CertVerifier certVerifier,
+ public static YesNoSandbox showPartiallySignedWarningDialog(JNLPFile file, CertVerifier certVerifier,
SecurityDelegate securityDelegate) {
if (!shouldPromptUser()) {
if (JNLPRuntime.isTrustAll()) {
- return new AppSigningWarningAction(ExecuteAppletAction.YES, false);
+ return YesNoSandbox.yes();
} else {
- return new AppSigningWarningAction(ExecuteAppletAction.NO, false);
+ return YesNoSandbox.no();
}
}
@@ -229,7 +227,8 @@
message.certVerifier = certVerifier;
message.extras = new Object[] { securityDelegate };
- return ((RememberPanel.Garbage) getUserResponse(message)).getAction();
+ DialogResult r = getUserResponse(message);
+ return (YesNoSandbox) r;
}
/**
@@ -263,6 +262,7 @@
message.extras = new Object[] { host, port, prompt, type };
DialogResult response = getUserResponse(message);
+ OutputController.getLogger().log(OutputController.Level.MESSAGE_DEBUG, "Decided action for matching alaca at was " + response);
return (NamePassword) response;
}
@@ -286,24 +286,17 @@
}
message.extras = new Object[]{urlToShow, UrlUtils.setOfUrlsToHtmlList(remoteUrls)};
DialogResult selectedValue = getUserResponse(message);
+
+ OutputController.getLogger().log(OutputController.Level.MESSAGE_DEBUG, "Decided action for matching alaca at " + file.getCodeBase() + " was " + selectedValue);
+
+ if (selectedValue == null){
+ return false;
+ }
return selectedValue.toBoolean();
}
public static boolean showMatchingALACAttributePanel(JNLPFile file, URL documentBase, Set<URL> remoteUrls) {
- ExecuteAppletAction storedAction = getStoredAction(file, AppletSecurityActions.MATCHING_ALACA_ACTION);
- OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Stored action for matching alaca at " + file.getCodeBase() +" was " + storedAction);
-
- if (storedAction != null){
- if (storedAction == ExecuteAppletAction.ALWAYS){
- return true;
- }
- if (storedAction == ExecuteAppletAction.NEVER){
- return false;
- }
- }
More information about the distro-pkg-dev
mailing list