当 jnlp 位置未知时,在 Java 安全对话框中始终允许复选框(自 Java 8u121)

Allow always checkbox in Java security dialog when jnlp location is unknown (since Java 8u121)

在 Java 8 Update 121 中,他们实现了 bugfix,这会导致安全对话框以不同方式处理来自未知位置的 jnlp 文件。 据我了解此修复程序,jnlp 文件的位置现在将通过文件的散列来确定。 我的问题是,我的远程 jnlp 文件中有一些动态内容。因此,每次调用的哈希值都不同,并且会弹出安全对话框,无论我是否单击 "Do not show again"。

避免这种行为的正确方法是什么?我应该将参数动态传递给 jnlp 文件吗?

我也遇到了这个问题。我通过如下修改我的 JNLP 解决了它,

param1, param2, param3 相同,传递给我

我的 JnlpServlet 在两个地方填充 param1、param2、param3,即:jnlp.href 和 application-desc。main-class

Java Web Start 将下载 JNLP,然后再次交叉检查散列 jnlp.href 输出。两者都会匹配,因此不会显示弹出窗口。

希望对您有所帮助。

而且问题也是从更新 112 而不是 121

开始的

此问题已在 Java 8 Update 161 中修复。 您现在可以在 JNLP 中定义安全参数,这些参数不会用于哈希计算。 简单地说 属性

  <property name="jnlp.secure.argument.<argument-name>" value="true"/>

进入你的 jnlp 文件。您还可以使用通配符,以便所有参数都标记为 secure

  <property name="jnlp.secure.argument.*" value="true"/>