* Einige Pr\u00fcftests wurden nicht bestandenWegen eines ungeeigneten JDKs wird IcedTea-Web wahrscheinlich nicht starten k\u00f6nnen.
* Es wurde kein OpenJDK erkannt
-+ * This is an internal class whose package changed between OpenJDK 7 and 8. -+ * Use reflection to access the right thing. -+ */ -+ public static class KeyPair { -+ -+ private /* CertAndKeyGen */ Object keyPair; -+ -+ public KeyPair(String keyAlgName, String sigAlgName, int keySize) throws NoSuchAlgorithmException, InvalidKeyException { -+ try { -+ // keyPair = new CertAndKeyGen(keyAlgName, sigAlgName); -+ Class> certAndKeyGenClass = Class.forName(getCertAndKeyGenClass()); -+ Constructor> constructor = certAndKeyGenClass.getDeclaredConstructor(String.class, String.class); -+ keyPair = constructor.newInstance(keyAlgName, sigAlgName); -+ -+ // keyPair.generate(keySize); -+ Method generate = certAndKeyGenClass.getMethod("generate", int.class); -+ generate.invoke(keyPair, keySize); -+ } catch (ClassNotFoundException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (NoSuchMethodException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (SecurityException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (InstantiationException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (IllegalAccessException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (IllegalArgumentException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } catch (InvocationTargetException e) { -+ throw new AssertionError("Unable to use CertAndKeyGen class", e); -+ } -+ } -+ -+ public PrivateKey getPrivateKey() { -+ try { -+ // return keyPair.getPrivateKey(); -+ Class> klass = keyPair.getClass(); -+ Method method = klass.getMethod("getPrivateKey"); -+ return (PrivateKey) method.invoke(keyPair); -+ } catch (NoSuchMethodException error) { -+ throw new AssertionError(error); -+ } catch (IllegalAccessException error) { -+ throw new AssertionError(error); -+ } catch (IllegalArgumentException error) { -+ throw new AssertionError(error); -+ } catch (InvocationTargetException error) { -+ throw new AssertionError(error); -+ } -+ } -+ -+ public X509Certificate getSelfCertificate(X500Name name, Date notBefore, long validityInDays) -+ throws InvalidKeyException, CertificateException, SignatureException, -+ NoSuchAlgorithmException, NoSuchProviderException { -+ try { -+ // return keyPair.getSelfCertificate(name, notBefore, validityInDays * 24L * 60L * 60L); -+ Class> klass = keyPair.getClass(); -+ Method method = klass.getMethod("getSelfCertificate", X500Name.class, Date.class, long.class); -+ return (X509Certificate) method.invoke(keyPair, name, notBefore, validityInDays * 24L * 60L * 60L); -+ } catch (InvocationTargetException ite) { -+ throw new RuntimeException(ite.getCause()); -+ } catch (NoSuchMethodException error) { -+ throw new AssertionError(error); -+ } catch (IllegalAccessException error) { -+ throw new AssertionError(error); -+ } catch (IllegalArgumentException error) { -+ throw new AssertionError(error); -+ } -+ } -+ -+ private String getCertAndKeyGenClass() { -+ String javaVersion = System.getProperty("java.version"); -+ String className = null; -+ if (javaVersion.startsWith("1.7")) { -+ className = "sun.security.x509.CertAndKeyGen"; -+ } else if (javaVersion.startsWith("1.8")) { -+ className = "sun.security.tools.keytool.CertAndKeyGen"; -+ } else { -+ throw new AssertionError("Unrecognized Java Version"); -+ } -+ return className; -+ } -+ } - } - diff --git a/sources b/sources index 20e9227..6cb36e3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -a6199869763291879f3a7382b114974c icedtea-web-1.5.tar.gz +ee53fdd19456a59aa9d3a407d35a358c icedtea-web-1.5.1.tar.gz 7a8f5f672d596fc2392f580c4603a8fb icedtea-web.metainfo.xml diff --git a/urlpermission.patch b/urlpermission.patch deleted file mode 100644 index a9517d3..0000000 --- a/urlpermission.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/netx/net/sourceforge/jnlp/SecurityDesc.java b/netx/net/sourceforge/jnlp/SecurityDesc.java ---- a/netx/net/sourceforge/jnlp/SecurityDesc.java -+++ b/netx/net/sourceforge/jnlp/SecurityDesc.java -@@ -16,11 +16,20 @@ - - package net.sourceforge.jnlp; - --import java.io.*; --import java.net.*; --import java.util.*; --import java.security.*; - import java.awt.AWTPermission; -+import java.io.FilePermission; -+import java.net.SocketPermission; -+import java.net.URI; -+import java.net.URISyntaxException; -+import java.net.URLPermission; -+import java.security.AllPermission; -+import java.security.CodeSource; -+import java.security.Permission; -+import java.security.PermissionCollection; -+import java.security.Permissions; -+import java.security.Policy; -+import java.security.URIParameter; -+import java.util.PropertyPermission; - - import net.sourceforge.jnlp.config.DeploymentConfiguration; - import net.sourceforge.jnlp.runtime.JNLPRuntime; -@@ -345,6 +354,16 @@ public class SecurityDesc { - permissions.add(new SocketPermission(downloadHost, - "connect, accept")); - -+ try { -+ final String codebase = file.getCodeBase().toURI().toString(); -+ final String urlPermUriString = codebase + (codebase.endsWith("/") ? "-" : "/-"); -+ // Allow applets all HTTP methods (ex POST, GET) with any request headers -+ // on resources anywhere recursively in or below the applet codebase -+ permissions.add(new URLPermission(urlPermUriString)); -+ } catch (final URISyntaxException e) { -+ OutputController.getLogger().log(e); -+ } -+ - return permissions; - } -