2013-06-03 39 views
1

我希望Eclipse RCP產品在啓動時驗證所有捆綁包的簽名。在幾個系統和插件礦山模塊,但RCP應用程序仍然加載製作equinox驗證包

-Dosgi.signedcontent.support=all 
-Declipse.p2.unsignedPolicy=fail 

我隨機變化的簽名,沒有任何提示的工作原理:所以我添加了這些參數的eclipse.ini。所以,似乎驗證不會發生。

如何使Equinox能夠驗證所有包?我是否僅限於使用安全管理器(因爲性能問題,我不想打開它)?

我在哪裏可以找到關於Equinox的捆綁驗證和安全管理器的任何文檔?

+1

能幫你多一點清楚你實際上做了什麼? 「我隨機在插件中的幾個系統和我的模塊中更改了簽名。」你的意思是你隨機更改了清單和相關文件中的摘要,同時保持了代碼本身的完整性?或者相反? –

+0

我更改了摘要,希望得到一些安全性例外。 – Oroboros102

回答

1

我對eclipse.ini進行了一些更改並獲得了驗證工作。我還沒有想出哪些具體的設置幫助,所以(現在)我使用這些:

... 
-vmargs 
-Dorg.osgi.framework.security=osgi 
-Djava.security.policy=/test.policy 
-Dosgi.signedcontent.support=all 
-Dosgi.support.signature.verify=true 
-Declipse.p2.unsignedPolicy=fail 
-Dosgi.signedcontent.trust.engine=BundleTrustEngine 

test.policy是讓所有 JAAS策略:

grant { 
permission java.security.AllPermission; 
}; 
+0

-Dorg.osgi.framework.security = osgi似乎已經足夠了。 –

+0

經過測試。如果沒有「全部允許」政策,Equinox甚至沒有啓動:拒絕本地和jar發射器的訪問。 「org.osgi.framework.security = osgi」+「允許所有」 - 捆綁未被驗證。調查最小集。 – Oroboros102

+0

奇怪。它在這裏工作正常。但最重要的是它現在適合你,所以問題就解決了。 –