aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Domurad <[email protected]>2012-10-19 15:14:09 -0400
committerAdam Domurad <[email protected]>2012-10-19 15:14:09 -0400
commit3d595f35b4ec1966e364cd976b479a91e7e5f3f4 (patch)
tree6d48be1623b98457047a01c5a54010d77c2126af
parent91cbd446383d31a3985aba6e0f825270dfc4c00a (diff)
New message for when JNLP is fully signed by different certs
-rw-r--r--ChangeLog9
-rw-r--r--netx/net/sourceforge/jnlp/resources/Messages.properties2
-rw-r--r--netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java6
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f1a145..fb027ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -30,6 +30,15 @@
2012-10-19 Adam Domurad <[email protected]>
+ New message for signer mismatch in JNLP applications.
+ * netx/net/sourceforge/jnlp/resources/Messages.properties: Added
+ message 'The JNLP application is not fully signed by a single cert.'
+ * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Message
+ thrown when JNLP's jcv.allJarsSigned() is true but not
+ jcv.isFullySigned();
+
+2012-10-19 Adam Domurad <[email protected]>
+
Fixes JCV#isTriviallySigned(). Reproducer 'EmptySignedJar' passes
again.
* netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: Remove
diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties b/netx/net/sourceforge/jnlp/resources/Messages.properties
index 4010837..e74cf36 100644
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties
@@ -78,6 +78,8 @@ LCantDetermineMainClass=Unknown Main-Class.
LCantDetermineMainClassInfo=Could not determine the main class for this application.
LUnsignedJarWithSecurity=Cannot grant permissions to unsigned jars.
LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed.
+LSignedJNLPAppDifferentCerts=The JNLP application is not fully signed by a single cert.
+LSignedJNLPAppDifferentCertsInfo=The JNLP application has its components individually signed, however there must be a common signer to all entries.
LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars.
LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't.
LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file.
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
index 94d93a4..615b30c 100644
--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
@@ -317,7 +317,11 @@ public class JNLPClassLoader extends URLClassLoader {
*
*/
if (!file.getSecurity().getSecurityType().equals(SecurityDesc.SANDBOX_PERMISSIONS) && !signing) {
- throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LUnsignedJarWithSecurity"), R("LUnsignedJarWithSecurityInfo"));
+ if (jcv.allJarsSigned()) {
+ throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedJNLPAppDifferentCerts"), R("LSignedJNLPAppDifferentCertsInfo"));
+ } else {
+ throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LUnsignedJarWithSecurity"), R("LUnsignedJarWithSecurityInfo"));
+ }
} else if (signing == true) {
this.security = file.getSecurity();
} else {