web-dev-qa-db-ja.com

Javaセキュリティ設定によりブロックされたjnlpアプリケーション

エンタープライズJava jnlpファイルによってクライアントのjvmキャッシュにダウンロードされるjarがたくさんあるアプリケーションがあります。アプリケーションを起動すると、次のスタックトレースがJavaコンソール:

        Exception in thread "AWT-EventQueue-1" Java.lang.NullPointerException
at com.Sun.deploy.ui.DialogTemplate.imageAvailable(Unknown Source)
at com.Sun.deploy.ui.DialogTemplate.finalImageAvailable(Unknown Source)
at com.Sun.deploy.ui.ImageLoader$2.run(Unknown Source)
at Java.awt.event.InvocationEvent.dispatch(Unknown Source)
at Java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at Java.awt.EventQueue.access$200(Unknown Source)
at Java.awt.EventQueue$3.run(Unknown Source)
at Java.awt.EventQueue$3.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue.dispatchEvent(Unknown Source)
at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.run(Unknown Source)
       Exception in thread "AWT-EventQueue-1" Java.lang.NullPointerException
at com.Sun.deploy.ui.DialogTemplate.imageAvailable(Unknown Source)
at com.Sun.deploy.ui.DialogTemplate.finalImageAvailable(Unknown Source)
at com.Sun.deploy.ui.ImageLoader$2.run(Unknown Source)
at Java.awt.event.InvocationEvent.dispatch(Unknown Source)
at Java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at Java.awt.EventQueue.access$200(Unknown Source)
at Java.awt.EventQueue$3.run(Unknown Source)
at Java.awt.EventQueue$3.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue.dispatchEvent(Unknown Source)
at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.run(Unknown Source)
    #### Java Web Start Error:
    #### The Java security settings have prevented this application from running. You may change this behavior in the Java Control Panel.

私のJNLPファイルは、いくつかの修正された説明を含む次のようなものです。

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://10.100.10.9/ikarusdelhitest/" href="ikarus.jnlp">
<information>
    <title>ikarus</title>
    <vendor>my company</vendor>
    <homepage href="http://www.mycompanyaddress.com" />
    <description>My enterprise Java ee swing application</description>
    <icon href="ikarus.jpg" />
    <offline-allowed />
</information>
<security>
    <all-permissions />
</security> 
<resources> 
    <jar href="jars/ikarus/ikarusClient.jar" />
    <jar href="jars/ikarus/ikarusDelegators.jar" />
    <jar href="jars/ikarus/clientRules.jar" />
    <jar href="jars/ikarus/ruleImps.jar" />
    <jar href="jars/ikarus/ikarusUtil.jar" />
    <jar href="jars/ikarus/ikarusResources.jar" />
    <jar href="jars/ikarus/domain.jar" />
    <jar href="jars/ikarus/domain_repository.jar" />
    <jar href="jars/ikarus/domain_service.jar" />
    <jar href="jars/ikarus/app_repository.jar" />
    <jar href="jars/ikarus/app_service.jar" />
    <jar href="jars/ikarus/infrastructure.jar" />
    <jar href="jars/ikarus/integration_domain.jar" />
    <jar href="jars/jboss_ejb_auth/ejb3-persistence.jar" />
    <jar href="jars/jboss_ejb_auth/jboss-ejb3x.jar" />
    <jar href="jars/jboss_ejb_auth/jbossall-client.jar" />
    <jar href="jars/jasper/commons-beanutils-1.8.0.jar" />
    <jar href="jars/jasper/commons-collections-3.2.1.jar" />
    <jar href="jars/jasper/commons-digester-1.7.jar" />
    <jar href="jars/jasper/commons-logging-1.1.jar" />
    <jar href="jars/jasper/iText-2.1.0.jar" />
    <jar href="jars/jasper/jasperreports-3.6.0.jar" />
    <jar href="jars/jasper/poi-3.2-FINAL-20081019.jar" />
    <property name="jnlp.localization" value="Delhi"/>
</resources>
<application-desc main-class="com.celebi.ikarus.main.Ikarus" />

また、詳細情報パネルでいくつかの異なる例外の詳細が表示されることに注意してください。

com.Sun.deploy.security.BlockedException: The Java security settings have prevented this application from running. You may change this behavior in the Java Control Panel.
at com.Sun.deploy.security.SandboxSecurity.showBlockedDialog(Unknown Source)
at com.Sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
at com.Sun.javaws.security.AppPolicy.addPermissions(Unknown Source)
at com.Sun.jnlp.JNLPClassLoader.getTrustedCodeSources(Unknown Source)
at com.Sun.deploy.security.CPCallbackHandler$ParentCallback.strategy(Unknown Source)
at com.Sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at com.Sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at com.Sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.Sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(Unknown Source)
at com.Sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(Unknown Source)
at Java.security.SecureClassLoader.defineClass(Unknown Source)
at Java.net.URLClassLoader.defineClass(Unknown Source)
at Java.net.URLClassLoader.access$100(Unknown Source)
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(Unknown Source)
at com.Sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at com.Sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.Sun.javaws.Launcher.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
Caused by: Java.lang.SecurityException: Invalid Permissions value: all-permissions  
at com.Sun.deploy.security.DeployManifestChecker.verify(Unknown Source)
at com.Sun.deploy.security.DeployManifestChecker.verify(Unknown Source)
... 39 more

Javaコントロールパネルのセキュリティに関するセキュリティ制限はありません。次のように中レベルです。 here

助けてくれてありがとう

新しい編集:次のようにjvm 1.6マシンからこのjnlpを実行しようとすると、より詳細なスタックトレースが得られました。

Java.lang.NoClassDefFoundError: javax/ejb/EJBAccessException
at Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at Java.lang.Class.getMethod0(Unknown Source)
at Java.lang.Class.getMethod(Unknown Source)
at com.Sun.javaws.Launcher.executeApplication(Unknown Source)
at com.Sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.Sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.Sun.javaws.Launcher.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
Caused by: Java.lang.ClassNotFoundException: javax.ejb.EJBAccessException
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(Unknown Source)
at com.Sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
13
ali kerim erkan

これを修正するには、Javaコントロールパネル([スタート]メニュー> [すべてのプログラム]> Java> Configure Java)]に移動し、2つのURLをセキュリティ編集サイトリストに追加します] 。

http://code.google.com

http://androidscreencast.googlecode.com

Macシステム環境設定> Javaの場合

これらのサイトを追加する場所

Javaコントロールパネル> [セキュリティ]タブ> [サイトリストの編集]> [追加]> [適用]> Ok enter image description here

15
turbandroid

アイテムfile:/を追加してみました。

enter image description here

5
MirlvsMaximvs

トレースとログを有効にすることをお勧めします。こちらの方法をご覧ください。

enter image description here

そして、コマンドラインからアプリケーションを実行します。

javaws -verbose AppName.jnlp

次に、このパスに保存されているログおよびトレースファイルの手がかりを確認できます

\Documents and Settings\<USERNAME>\Application Data\Sun\Java\Deployment\log

imgソース:

http://www.Cisco.com/c/en/us/support/docs/security/hostscan/117097-trouble-Java7-00.html

3
Hernán Eche

この問題は、Java 1.8u60で発生しました。JNLPファイル内のアイコンへの無効な参照が原因です。以前は、欠落していたアイコンは無視されていました。アイコンへの参照は問題を修正しました。

削除した2つの参照は次のとおりです。

<icon href="ORCL.jpg" kind="splash"/>
<icon href="ORCS.jpg" kind="default"/>

お役に立てば幸いです。

1
Stephen M

Java(コントロールパネル))の[詳細設定]タブの下にあるチェックボックスを有効にして、[JNLPファイル]セクションの下にある[常に許可]オプションにチェックマークを付けることもできます。

0
rinilnath

Arch Linuxシステムでは、Javaコントロールパネル/opt/Java7/jre/bin/ControlPaneljcontrolへのシンボリックリンク)でアクセスできることがわかりました。 )。実行することで、Securityタブにアクセスし、セキュリティレベルをMediumに下げました。次に、/opt/Java7/bin/javawsのようなものを開始すると、セキュリティ警告を受け入れるように求められます。

0
Micah Elliott

非常によく似た問題がありました( 正しい署名のJNLPアプリケーションがJava 7 で実行できませんでした)

確認して修正しました

  • 1.7を使用してコンパイルしました
  • JNLPファイルを更新して1.7を適用しました

    <リソース>
    <j2se version = "1.7 *" Java-vm-args = "-Xmx32m" max-heap-size = "32m" href = "http://Java.Sun.com/products/autodl/j2se 「/>

0
YanisTheYak