我有一個Eclipse RCP應用程序,其中包含一些敏感屬性。這些屬性將根據用戶輸入的密鑰進行加密。 Bundles/Plug-ins定義屬性,以及它們是否應該被加密。技巧是這樣的:定義屬性的bundle應該是唯一被允許訪問解密屬性的bundle(默認)。我明白,通常每個捆綁應該有自己的屬性獨立管理,但這是不可能的,因爲屬性是從集中位置檢索的。通過捆綁包限制對Eclipse RCP中方法的訪問
即,我怎麼可以這樣做:
public byte[] getByteArrayProperty(Object id){
if (method is being called by code in bundle: bundleId)
return decrypt(property);
else
throw new SecurityException("Bundle " + bundleId + " not authorized to access property " + id);
}
感謝您的任何和所有的建議!
./P
爲什麼不能有一個服務(例如'PropertyRepository'),它將提供一個方法,比如'storeProperty(password)'和'getProperties(password)',它們將通過使用調用bundle的id來存儲/檢索屬性作爲商店的關鍵?那麼每個bundle只需要生成一個唯一的密碼(隨機散列?),它將用來存儲/檢索。如果你願意 - 你可以在一系列相關軟件包中硬編碼密碼。 – drozzy 2012-02-23 18:41:04
不是一個壞主意,但任何人都可以閱讀源代碼來找到密碼 – Phaedrus 2012-02-23 20:00:00
好吧,如何打開安全性,並只允許那些特定的捆綁權限來打這個電話?這甚至會擺脫密碼。關於安全性的一些介紹(但是osgi規範有更詳細的介紹):http://felix.apache.org/site/presentations.data/Building%20Secure%20OSGi%20Applications%20Workshop.pdf – drozzy 2012-02-23 20:07:55