我们正在使用jnlp启动applet applet需要加载本机库jar和jnlp使用自生成的证书进行签名 . jnlp授予所有权限
<security>
<all-permissions/>
</security>
策略文件授予所有权限grant {permission java.security.AllPermission; };
我们得到一个弹出对话框“java安全警告”说:这个应用程序将执行一个不安全的操作 . 你想继续吗 ?
继续或取消(参见随附的屏幕截图)
没有“允许始终”按钮
这意味着“每次”启动applet时都会弹出对话框 . 这对用户来说很烦人 .
可以做些什么来禁用此对话框以弹出或使其最多出现一次?
4 回答
使用已由受信任机构验证的证书 . 禁用/忽略自签名证书的“始终允许”字段是Oracle决定不太可能更改的 .
我们实际上遇到了JNLP参数的问题 . 您无法在JNLP jre args参数中指定任何参数,否则您将获得安全警告 .
要避免安全警告弹出,请使用位于第638行的列表中的属性和JVM参数:http://javasourcecode.org/html/open-source/jdk/jdk-6u23/com/sun/deploy/config/Config.java.html
在JNLP上,如果JVM参数包含未在其中列出的内容,即使您正确签署证书,也会获得弹出窗口 . 这一切都归结为使用'安全'参数一个适当的证书,它会没问题 .
编辑
URL已被删除,因此这里是有效的参数:
编辑
当时我们有这些论点:
问题出在-Djava.security.policy上,直到我从那里删除它才能理解弹出窗口 .
NEW URL FOR java source jdk6.23
在JAVA_OPTS中使用远程调试参数可能会导致弹出窗口
-agentlib:jdwp=transport=dt_socket,address=localhost:8000,server=y,suspend=n
我有以下参数并遇到同样的问题:
删除它解决了它 .