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 安全模型是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Java动态模型系统OSGi实战讲解

现代计算机理论模型,工作原理,以及硬件是如何实现并发安全

深入理解OSGI的模块化

如何使用 maven 项目轻松部署到 Karaf Osgi 容器

OSGI基础知识整理

OSGI 和 JSF 如何协同工作?