未授予JNLP的写入权限

时间:2015-10-21 10:25:58

标签: java java-web-start jnlp

我们开发了非常重要的应用程序,我们需要JNLP。我的JAR使用受信任的CA证书进行签名(使用jarsigner运行时已验证状态)。我在Permissions: all-permissions中有MANIFEST.MF。我的JNLP看起来像这样:

<jnlp codebase="http://TEST:18080" spec="1.0+" href="/TEST-boot/Test.jnlp">
    <information>
        <vendor>TEST</vendor>
        <homepage href="http://wf-nb:18080/" />
        <description>Testing Testing</description>
    </information>
    <update check="timeout" policy="always"/>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.7+" />
        <jar href="/TEST/jar/TEST-boot-signed.jar" />
    </resources>
    <application-desc main-class="test.package" />
</jnlp>

我仍然拒绝访问。 JNLP应用程序应该可以完全访问磁盘和所有内容,对吧?如果我想读取系统属性:

21.10.2015 12:14:34.400 [WARN] access denied ("java.util.PropertyPermission" "user.home" "read")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.home" "read")

致电时:

public String getSystemProperty(final String key, final String def) {
    return (String)AccessController.doPrivileged(new PrivilegedAction() {
        public Object run() {
            return System.getProperty(key, def);
        }
    });
}

此代码取自applet,它运行良好。我应该删除doPrivileged的东西,还是从java web start运行时仍然需要它?

第二个问题:当我想在我的应用程序中使用HttpUrlConnection时,我会收到连接提示(即使它是加载了JNLP应用程序的同一台服务器)。 Java总是会显示此提示吗?

0 个答案:

没有答案