osgi安全模型如何工作?

时间:2014-03-02 17:55:42

标签: java osgi equinox securitymanager

我想知道OSGI究竟如何检查自己的权限,如PackagePermission。我已经读过他们使用自制的ProtectionDomain,但事实并非如此(对于我正在研究的新版本)。如果您只是参考Equinox就可以了。 是否每个bundle的实现检查都会为PackagePermission导出其资源?

 public void export(BundleContext ctx) {
        SecurityManager manager = System.getSecurityManager();
        if(manager != null) {
            manager.checkPermission(new PackagePermission(ctx, "export"));
        }
 }

因为我认为检查这种自制权限并不容易。

1 个答案:

答案 0 :(得分:0)

您当然可以查看Equinox或Apache Felix Security的源代码以了解如何完成此操作:-)对于包权限,框架可能会使用Bundle.hasPermission来避免抛出的异常。