Mercurial > hg > release > icedtea-web-1.6
changeset 941:fb2309dfa598
CertWarningPane SecurityDelegate reference
Passing a reference to SecurityDelegate to CertWarningPane, so that UI
elements can be added later to allow the applet to be run Sandboxed + some
temporary permissions
* netx/net/sourceforge/jnlp/security/JNLPAppVerifier.java: (checkTrustWithUser)
pass SecurityDelegate reference to SecurityDialogs.showCertWarningDialog
* netx/net/sourceforge/jnlp/security/PluginAppVerifier.java: same
* netx/net/sourceforge/jnlp/security/SecurityDialog.java: pass SecurityDelegate
reference from extras into CertWarningPane constructor
* netx/net/sourceforge/jnlp/security/SecurityDialogs.java: (showCertWarningDialog)
added SecurityDelegate parameter, add to extras array.
* netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java: (askUser)
pass null for SecurityDelegate reference
* netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java: (CertWarningPane)
added SecurityDelegate constructor parameter and (securityDelegate) field
author | Andrew Azores <aazores@redhat.com> |
---|---|
date | Thu, 20 Mar 2014 15:23:33 -0400 |
parents | 674128ef4394 |
children | 022f56ff692f |
files | ChangeLog netx/net/sourceforge/jnlp/security/JNLPAppVerifier.java netx/net/sourceforge/jnlp/security/PluginAppVerifier.java netx/net/sourceforge/jnlp/security/SecurityDialog.java netx/net/sourceforge/jnlp/security/SecurityDialogs.java netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java |
diffstat | 7 files changed, 33 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Mar 20 15:20:58 2014 -0400 +++ b/ChangeLog Thu Mar 20 15:23:33 2014 -0400 @@ -1,5 +1,24 @@ 2014-03-20 Andrew Azores <aazores@redhat.com> + Passing a reference to SecurityDelegate to CertWarningPane, so that UI + elements can be added later to allow the applet to be run Sandboxed + some + temporary permissions + * netx/net/sourceforge/jnlp/security/JNLPAppVerifier.java: (checkTrustWithUser) + pass SecurityDelegate reference to SecurityDialogs.showCertWarningDialog + * netx/net/sourceforge/jnlp/security/PluginAppVerifier.java: same + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: pass SecurityDelegate + reference from extras into CertWarningPane constructor + * netx/net/sourceforge/jnlp/security/SecurityDialogs.java: (showCertWarningDialog) + added SecurityDelegate parameter, add to extras array. + * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java: (askUser) + pass null for SecurityDelegate reference + * netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java: (CertWarningPane) + added SecurityDelegate constructor parameter and (securityDelegate) field + +2014-03-20 Andrew Azores <aazores@redhat.com> + + SecurityDelegate can be used to add permissions to JNLPClassLoader during + run. This is useful for adding temporary extra permissions to an applet. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (SecurityDelegate addPermission, addPermissions) new methods. (SecurityDelegateImpl addPermission, addPermissions) implement previous.
--- a/netx/net/sourceforge/jnlp/security/JNLPAppVerifier.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/JNLPAppVerifier.java Thu Mar 20 15:23:33 2014 -0400 @@ -121,7 +121,7 @@ } AppletAction action = SecurityDialogs.showCertWarningDialog( - dialogType, file, jcv); + dialogType, file, jcv, securityDelegate); if (action != AppletAction.CANCEL) { if (action == AppletAction.SANDBOX) { securityDelegate.setRunInSandbox();
--- a/netx/net/sourceforge/jnlp/security/PluginAppVerifier.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/PluginAppVerifier.java Thu Mar 20 15:23:33 2014 -0400 @@ -168,7 +168,7 @@ } AppletAction action = SecurityDialogs.showCertWarningDialog( - dialogType, file, jcv); + dialogType, file, jcv, securityDelegate); if (action != AppletAction.CANCEL) { if (action == AppletAction.SANDBOX) { securityDelegate.setRunInSandbox();
--- a/netx/net/sourceforge/jnlp/security/SecurityDialog.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/SecurityDialog.java Thu Mar 20 15:23:33 2014 -0400 @@ -48,6 +48,7 @@ import javax.swing.JDialog; import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.runtime.JNLPClassLoader.SecurityDelegate; import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; import net.sourceforge.jnlp.security.SecurityDialogs.DialogType; import net.sourceforge.jnlp.security.dialogs.AccessWarningPane; @@ -302,7 +303,7 @@ private void installPanel() { if (dialogType == DialogType.CERT_WARNING) - panel = new CertWarningPane(this, this.certVerifier); + panel = new CertWarningPane(this, this.certVerifier, (SecurityDelegate) extras[0]); else if (dialogType == DialogType.MORE_INFO) panel = new MoreInfoPane(this, this.certVerifier); else if (dialogType == DialogType.CERT_INFO)
--- a/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Mar 20 15:23:33 2014 -0400 @@ -52,10 +52,11 @@ import net.sourceforge.jnlp.JNLPFile; 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.ExecuteAppletAction; +import net.sourceforge.jnlp.security.dialogs.apptrustwarningpanel.AppTrustWarningPanel.AppSigningWarningAction; import net.sourceforge.jnlp.util.UrlUtils; -import net.sourceforge.jnlp.security.dialogs.apptrustwarningpanel.AppTrustWarningPanel.AppSigningWarningAction; -import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteAppletAction; /** * <p> @@ -197,7 +198,7 @@ * user did not accept running the applet */ public static AppletAction showCertWarningDialog(AccessType accessType, - JNLPFile file, CertVerifier certVerifier) { + JNLPFile file, CertVerifier certVerifier, SecurityDelegate securityDelegate) { if (!shouldPromptUser()) { return AppletAction.CANCEL; @@ -208,6 +209,7 @@ message.accessType = accessType; message.file = file; message.certVerifier = certVerifier; + message.extras = new Object[] { securityDelegate }; Object selectedValue = getUserResponse(message);
--- a/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Thu Mar 20 15:23:33 2014 -0400 @@ -425,7 +425,7 @@ AccessType.UNVERIFIED, null, new HttpsCertVerifier(chain, authType, isTrusted, hostMatched, - hostName)) == AppletAction.RUN; + hostName), null) == AppletAction.RUN; } }); }
--- a/netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java Thu Mar 20 15:20:58 2014 -0400 +++ b/netx/net/sourceforge/jnlp/security/dialogs/CertWarningPane.java Thu Mar 20 15:23:33 2014 -0400 @@ -65,6 +65,7 @@ import net.sourceforge.jnlp.JNLPFile; import net.sourceforge.jnlp.PluginBridge; +import net.sourceforge.jnlp.runtime.JNLPClassLoader.SecurityDelegate; import net.sourceforge.jnlp.security.CertVerifier; import net.sourceforge.jnlp.security.CertificateUtils; import net.sourceforge.jnlp.security.HttpsCertVerifier; @@ -89,10 +90,12 @@ JCheckBox alwaysTrust; CertVerifier certVerifier; + SecurityDelegate securityDelegate; - public CertWarningPane(SecurityDialog x, CertVerifier certVerifier) { + public CertWarningPane(SecurityDialog x, CertVerifier certVerifier, SecurityDelegate securityDelegate) { super(x, certVerifier); this.certVerifier = certVerifier; + this.securityDelegate = securityDelegate; addComponents(); }