2014-11-14 54 views
1

當我運行我的JNLP時,它始終與「com.sun.deploy.net.JARSigningException:在資源中找到無符號條目:http:// ......」部署規則集是否允許JNLP運行而不簽署瓶子?

我的JNLP即時生成一類,並最終在頂部看起來像這樣:

<jnlp spec="1.0+" codebase="http://myhost.com:8080/webstart" href="jnlp?app=com.mycompany.LaunchWebstart"> 

我創建了一個非常廣闊的ruleset.xml

<ruleset version="1.0+"> 
    <rule> 
    <id /> 
    <action permission="run" /> 
    </rule> 
</ruleset> 

把它添加到一個罐子

jar -cf DeploymentRuleSet.jar ruleset.xml 

與我公司簽署密鑰庫它

jarsigner DeploymentRuleSet.jar <alias> -keystore <path-to-keystore> -sigfile filesig -storetype <store-type> 

然後複製到

%SYSTEMROOT%\Sun\Java\Deployment 

按照docs我應該能夠在不簽約我的罐子所以爲什麼我收到此錯誤運行?

permission - Action taken. The following values are valid: 

run - The following types of RIAs are allowed to run without prompts: 
    Signed with a valid certificate from a trusted certificate authority 
    Signed with an expired certificate 
    Self-signed 
    Unsigned 
    Missing required JAR file manifest attributes 

有250〜(!),所以我寧願不籤他們所有的時間,因爲它大大減慢我的構建過程。

使用JRE版本1.7.0_71-b14。

回答

0

需要導入下JAVA證書>安全>證書>簽署者CA

1

部署規則集允許JNLP運行而不簽署JARS?

我從來沒有聽說過的「部署規則集」,但如果有什麼讓未簽名的JAR運行(短用戶手動調整在控制檯的安全級別的),這將是一個安全漏洞。

+0

不知道你是否真的可以稱之爲安全漏洞。它要求您在C:\ Windows \ Sun \ Java \ Deployment中安裝部署規則集。如果你有權這樣做,你幾乎可以做任何事情。系統管理員有責任確保配置的安全。 – 2015-07-22 14:21:36

0

看來,你的規則集無效。您可以通過打開Java控制面板進行檢查,然後在安全選項卡上單擊「查看活動的部署規則集」。

enter image description here

離開了ID不允許權限運行。根據Oracle's documentation on Deployment Rule Sets:「爲了確保所有RIA都由規則集處理,您可以提供一個最終規則,以匹配與先前規則不匹配的任何RIA。此規則的操作必須是阻止或默認。」

要允許未簽名的應用程序,您應該列出它的位置。您還應該更改jnlp文件的href屬性以包含相同的位置。我已經爲我們的應用程序嘗試了這一點,但不幸的是我仍然收到錯誤「在資源中找到未簽名的條目...」。根據對this bug report的回覆,它應該可以工作......