通过Bundle限制对Eclipse RCP中的方法的访问

时间:2012-02-23 02:40:04

标签: eclipse security osgi bundle

我有一个带有一些敏感属性的Eclipse RCP应用程序。将根据用户输入的密钥对属性进行加密。 Bundles / Plug-ins定义属性,以及它们是否应加密。诀窍是:定义属性的bundle应该是唯一允许随后访问该属性的bundle(默认情况下)。我理解通常每个捆绑包都应该独立管理它自己的属性,但这是不可能的,因为从集中位置检索属性。

即,我该怎么做:

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

1 个答案:

答案 0 :(得分:1)

您可以使用SecurityManager来识别调用类,如this answer中所述,然后检查调用类的包是否与包中的包相同。