【发布时间】:2014-04-08 06:27:53
【问题描述】:
我需要使用 ConditionalPermissionAdmin 分配权限以在 OSGi 中捆绑。权限字符串如下所示:
ALLOW { [org.osg.service.condpermadmin.BundleLocationCondition "file:d:/temp/*"]
(org.osgi.framework.PackagePermission "org.osgi.framework" "import")
}
尽管此权限出现在活动权限列表中,但当我从 d:\temp 文件夹安装和启动捆绑软件时,它会导致异常,指出无法解析:
org.osgi.framework.BundleException: The bundle
"com.javaworld.sample.HelloWorld_1.0.0.201404031307 [2]" could not be resolved.
Reason: Missing Permission: ("org.osgi.framework.PackagePermission"
"org.osgi.framework" "import"), Missing Constraint: Import-Package:
org.osgi.framework; version="0.0.0"
我正在使用名为“OSGI in Action”的书第 14 章中的示例,我的 OSGi 实现是 Equinox (org.eclipse.osgi_3.7.2.v20120110-1415.jar),启动 OSGi 的命令行是
java -Dorg.osgi.framework.security="osgi" -jar org.eclipse.osgi_3.7.2.v20120110-1415.jar -console
似乎缺少某些东西 - 我尝试将 AllPermissions 分配给捆绑包,但在“管理员”捆绑包开始分配权限后它们仍然无法解决。任何建议将不胜感激。
【问题讨论】:
-
你确定“file:d:/temp/*”会匹配包的实际位置字符串吗?