【问题标题】:Setting permissions for OSGi bundles为 OSGi 包设置权限
【发布时间】:2014-04-03 07:11:15
【问题描述】:

我在尝试限制 OSGi 包可以执行的操作时遇到了问题。根据我读过的文档,OSGi 包的权限应该在包的 JAR 中的 OSGI-INF/permissions.perm 文件中设置。但是,无论我在那个文件中写了什么(也不管这个文件是否存在),bundle 似乎都有 AllPermissions。更具体地说,我使用命令从命令行启动 OSGi

D:\temp\2>java -jar org.eclipse.osgi_3.3.2.R33x_v20080105.jar -console
-Djava.security.manager=org.eclipse.osgi.framework.internal.core.FrameworkSecurityManager

然后我用命令安装包

osgi> install file:/d:/temp/2/J1.jar

并启动它。当我尝试执行应该被限制的操作(例如,访问文件、加载库等)时,操作总是成功,即使是空的 permissions.perm 文件。如何激活 permissions.perm 文件中指定的权限?

【问题讨论】:

    标签: java eclipse osgi equinox accesscontrolexception


    【解决方案1】:

    permissions.perm 没有指定捆绑包可以做什么。它指定了捆绑包想要做什么:参见http://www.javacodegeeks.com/2012/11/permissions-in-osgi.html

    因此,如果缺少权限,该文件似乎可以快速失败。如果您不需要,您甚至可以将其省略。

    真正的安全设置必须在框架上完成。看到这个 felix:https://felix.apache.org/documentation/subprojects/apache-felix-framework-security.html

    【讨论】:

      【解决方案2】:

      设法让事情正常运行 - 如果 SecurityManager 可用或不可用,请检查我的代码。似乎在旧版本的 OSGi JAR 上我使用的安全管理器不起作用。我已经尝试使用 org.eclipse.osgi_3.7.2.v20120110-1415.jar 代替,并且 OSGI-INF/permissions.perm 文件中为 bundle 设置的权限工作正常。

      【讨论】:

        猜你喜欢
        • 2011-09-30
        • 1970-01-01
        • 2012-11-12
        • 1970-01-01
        • 2018-12-06
        • 2017-07-12
        • 1970-01-01
        • 1970-01-01
        • 2016-11-19
        相关资源
        最近更新 更多