Исключение безопасности веб-запуска Java 7u4: класс не соответствует уровню доверия

Мы начали замечать, что с Java 7 (особенно с обновлением 4) все наши пользователи стали видеть это с нашим Webstart app:

[14:42:58,422] AWT-EventQueue-0(DEBUG) java.lang.SecurityException: class "CLASSNAME" does not match trust level of other classes in the same package
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader$1.run(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader$1.run(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.security.AccessController.doPrivileged(Native Method)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader.findClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.lang.ClassLoader.loadClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.lang.ClassLoader.loadClass(Unknown Source)...More

Где CLASSNAME = почти каждый класс в случайных точках из нескольких jar-файлов при выполнении приложения, нарушающий несколько вариантов поведения. Если бы наши пользователи использовали Java 6, у них не было бы проблем! Всего 7 (обновление 4). Мы подписываем ВСЕ наши jar-файлы, как основной jar-файл приложения, так и его библиотечные jar-файлы. т. е. Пользователи, запускающие наше веб-приложение, видят синий экран вместо желтого или красного.

Очевидно, что это проблема, так как пользователи все чаще обновляются до Java 7. Я пытался заставить наше приложение использовать Java 6 на пользовательском компьютере, либо используя предыдущую установку (работает), либо установив новую.... с тегом j2se version="1.6" вокруг ресурсов, но это вызывает его собственный проблемы, которые, вероятно, лучше всего было бы сделать в своем собственном потоке (часть автоматической установки jre).

Нарушила ли Oracle безопасность Webstart с помощью Java 7u4? Как решить эту проблему исключения безопасности?

7
задан Andrew Thompson 6 June 2012 в 05:57
поделиться