【发布时间】:2013-10-21 09:40:22
【问题描述】:
我正在尝试在我的应用程序中使用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 安全层有问题吗?如何激活它?
【问题讨论】:
标签: java security osgi apache-karaf