使用动态参数对JNLP文件进行签名

时间:2018-03-16 14:45:55

标签: java-web-start jnlp

我正在文件夹JNLP-INF下的jar文件中签署一个具有APPLICATION.JNLP的JNLP文件。我的APPLICATION.JNLP放在罐子里看起来如下所示

<jnlp spec="1.0" codebase="https://www.example.com:7008/abc">
<information>
    <title>XYZ</title>
    <vendor>XYZ</vendor>
    <description>XYZ</description>
</information>
<security>
    <all-permissions/>
</security>
<resources>
    <j2se version="1.6+" />
    <jar href="abc.jar" />
</resources>
<application-desc main-class="tempclass.Class1">
    <argument>*</argument>
    <argument>*</argument>
    <argument>*</argument>
    <argument>*</argument>
    <argument>*</argument>
    <argument>*</argument>
    <argument>*</argument>
</application-desc>
</jnlp>

我从jsp生成的JNLP文件如下所示

<jnlp spec="1.0" codebase="https://www.example.com:7008/abc">
<information>
    <title>XYZ</title>
    <vendor>XYZ</vendor>
    <description>XYZ</description>
</information>
<security>
    <all-permissions/>
</security>
<resources>
    <j2se version="1.6+" />
    <jar href="abc.jar" />
</resources>
<application-desc main-class="tempclass.Class1">
    <argument>1</argument>
    <argument>2</argument>
    <argument>3</argument>
    <argument>4</argument>
    <argument>5</argument>
    <argument>6</argument>
    <argument>7</argument>
</application-desc>
</jnlp>

我面临的问题是使用此APPLICATION.JNLP我收到“签名的JNLP文件与下载的jnlp文件不匹配”。在添加精确的参数参数时它可以工作我想使用动态启动参数。我做错了什么?

2 个答案:

答案 0 :(得分:1)

从Java 8 Update 161开始,您可以在JNLP中定义安全参数。 将属性插入resources元素

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

您还可以使用通配符,以便所有参数都标记为安全

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

答案 1 :(得分:0)

如果我正确阅读了文档,则签名的.jar文件中的JNLP模板应命名为JNLP-INF / APPLICATION_TEMPLATE.JNLP

JNLP-INF /APPLICATION。JNLP用于无动态情况。