Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Karaf的OSGi安全性:未找到服务条件许可管理员_Java_Security_Osgi_Apache Karaf - Fatal编程技术网

Java Apache Karaf的OSGi安全性:未找到服务条件许可管理员

Java Apache Karaf的OSGi安全性:未找到服务条件许可管理员,java,security,osgi,apache-karaf,Java,Security,Osgi,Apache Karaf,我正在尝试在我的应用程序中使用,以Kraf运行。该代码摘自《OSGi在行动》(见)一书,概括为: ConditionalPermissionAdmin permAdmin = getConditionalPermissionAdmin(context); ConditionalPermissionUpdate update = permAdmin.newConditionalPermissionUpdate(); List infos = update.getConditionalPermiss

我正在尝试在我的应用程序中使用,以Kraf运行。该代码摘自《OSGi在行动》(见)一书,概括为:

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已经启用了这个功能。
更多信息请参见

猜测:我在引擎盖下使用Felix。我在现有功能中添加了
mvn:org.apache.felix/org.apache.felix.framework.security
,效果非常好!但当我启动它时,org.apache.aries.jmx.core发现了一个ClassNotFound异常
PermissionAdmin。你知道这是从哪里来的吗?我想知道aries核心包的更新是否已经解决了这个问题,如果已经解决了,请确保在早期阶段(低级别)在startup.properties中配置了permissionsadmin包。