【问题标题】:Signing a JNLP with $$context not working in java 7.45使用 $$context 签署 JNLP 在 java 7.45 中不起作用
【发布时间】:2013-11-18 20:08:14
【问题描述】:

我有一个具有 codebase="$$context" 的 JNLP

在签署 JAR 之前,我通过将其作为 JNLP-INF/APPLICATION.JNLP 放入 JAR 来签署 JNLP。

启动应用程序时,我得到“字段代码库在签名的启动文件中具有无效值:$$context”。

在浏览器中启动的主 JNLP 中的 $$context 被替换正常并且有效。签名 JAR 文件中的 jnlp 没有被明显替换,因此无效。我该如何调和呢?

谢谢

【问题讨论】:

    标签: java jnlp


    【解决方案1】:

    APPLICATION.JNLP 不应包含 codebase="$$context"。 它必须包含确切的代码库。 (见jnlp specification

    但是,在某些情况下代码库是动态的。在这种情况下,您应该使用 APPLICATION_TEMPLATE.JNLP 并在代码库属性中添加一个“*”。

    $$context 由在运行时生成 jnlp 的 JNLPDownloadServlet 使用,但是对于已签名的 JNLP,这是很成问题的,因为生成的 jnlp 必须完全与已签名的 jnlp 相同jar(除了'*')。

    对此的解决方案是使用 servlet 从签名的 jar 中提取 APPLICATION_TEMPLATE.JNLP,用正确的代码库替换“*”,并将其返回给浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      相关资源
      最近更新 更多