osgi 安全模型是如何工作的?
Posted
技术标签:
【中文标题】osgi 安全模型是如何工作的?【英文标题】:how does osgi security model work? 【发布时间】:2014-03-02 17:55:42 【问题描述】:我想知道 OSGI 究竟如何检查自己的权限,如 PackagePermission。我读过他们使用自制的 ProtectionDomain 但这不是真的(对于我正在查看的新版本)。如果您只参考 Equinox 就可以了。 是否会在每个捆绑包导出其资源以获取类似的 PackagePermission 之前进行实施检查?
public void export(BundleContext ctx)
SecurityManager manager = System.getSecurityManager();
if(manager != null)
manager.checkPermission(new PackagePermission(ctx, "export"));
因为我认为检查这种自制权限并不容易。
【问题讨论】:
【参考方案1】:您当然可以查看 Equinox 或 Apache Felix Security 的源代码以了解这是如何完成的 :-) 对于包权限,框架可能会使用 Bundle.hasPermission 来避免抛出异常。
【讨论】:
我已经看过了,但是错过了Bundle.hasPermission 方法。谢谢:D 我找不到任何特别之处。使用的 SecurityManager 看起来很安静正常...以上是关于osgi 安全模型是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章