java - Apache Karaf 的 OSGi 安全性 : no service ConditionalPermissionAdmin found

标签 java security osgi apache-karaf

我正在尝试使用conditional permissions在我的应用程序中,在 Karaf 中运行。该代码摘自《OSGi in Action》一书(请参阅 full policy example ),可归结为:

ConditionalPermissionAdmin permAdmin = getConditionalPermissionAdmin(context);
ConditionalPermissionUpdate update = permAdmin.newConditionalPermissionUpdate();
List infos = update.getConditionalPermissionInfos();
infos.clear();

infos.add(permAdmin.newConditionalPermissionInfo(
        "All permissions",
        new ConditionInfo[]{
            new ConditionInfo(
            BundleLocationCondition.class.getName(),
            new String[]{FrameworkUtil.getBundle(this.getClass()).getLocation()})
        },
        new PermissionInfo[]{
            new PermissionInfo(AllPermission.class.getName(), "*", "*")
        },
        ConditionalPermissionInfo.ALLOW));
update.commit();

但是,Karaf 似乎没有注册 ConditionalPermissionAdmin 服务,因为我在查找时得​​到 null ServiceReference。

Karaf安全层有问题吗?如何激活它?

最佳答案

Karaf 没有任何问题,因为您很可能正在使用开箱即用的 Karaf,您很可能也在使用 Felix 框架。对于 Felix,您需要部署额外的 org/apache/felix/org.apache.felix.security/1.4.0/org.apache.felix.framework.security-1.4.0.jar=1。 (很可能还需要更新的版本;-)) Equinox 已经启用了此功能。 查看更多my blog

关于java - Apache Karaf 的 OSGi 安全性 : no service ConditionalPermissionAdmin found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490982/

相关文章:

java - 关于映射未记录的 Java Eclipse 项目的建议

java - 声音播放之间有延迟吗?

java - Eclipse插件: Implement Quick Fix proposals on hovering over errors

java - 如何使用 Apache Felix 过滤插件文件夹中的 OSGi bundle

java - OSGI中的JDBC驱动程序问题

java - 如何使用 OpenJDK 7 编译 mavenized OSGi 4.3 包?

java - 如何创建整数和字符串对的排序列表?

Java .policy 文件 - 如何防止 java.util.Date() 被访问

javascript - 这是跨站脚本: DOM in dhtmlHistory. js吗

ios - 是否可以修改 iOS 应用程序的主包?