问题标签 [knopflerfish]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
258 浏览

java - OSGI knopflerfish 缺少软件包或无法解决它们

我有一个包含一些 jar 依赖项的包,但我不知道为什么,当我运行这个包时,它无法解析来自slf4j.jar.

这是显示的错误knopflerfish

这是我的bundle manifest

0 投票
2 回答
53 浏览

java - OSGi:如何找出正在使用我正在导出的服务的捆绑包?

我正在尝试获取捆绑包的列表,这些捆绑包要么正在导入我的捆绑包正在导出的服务(我找不到获取其他捆绑包清单的方法),要么是获取订阅了我的捆绑包正在发布的服务的捆绑包列表。

到目前为止,我正在尝试列出其他捆绑包正在使用的所有 ServiceReference,以查看它们是否正在使用我的,但没有成功。

谢谢你。

0 投票
1 回答
38 浏览

java - OSGI:如何找出哪些包订阅了我的服务参考字典中定义的特定属性?

当我注册一个 ServiceReference 时,我定义了我在 Dictionary 类中发布的 OSGi 事件的主题,就像上下文方法定义说的那样:

registerService(类,服务,字典

我的字典定义是:dictionary.put(EventConstants.EVENT_TOPIC, topics);

主题是一个字符串数组,其中包含一些字符串,这些字符串非常清楚地定义了我正在发布的每种可能的事件类型,如下所示:

字符串 [] 主题 = 新字符串 [] { "一", "二" };

我想知道哪些包订阅了字典中主题中定义的特定属性。我的意思是什么捆绑包将处理“TWO”的出版物。

谢谢。

0 投票
2 回答
312 浏览

java - OSGi:如何检测捆绑包何时注册到新服务

我想知道环境中的包何时使用 context.registerService(...) 注册服务。

有没有像 FrameworkEvent.STARTED 之类的监听器?

谢谢。

0 投票
1 回答
111 浏览

java - JSONObjects 不适用于 osgi 注册,不是作为函数参数,也不是作为返回

我正在使用 knopflerfish 环境,我正在尝试使用 ServiceRegistration 使用远程对象中的函数。我将举例说明。我创建了两个包,AB。Bundle B有一个C类,我在其中实现了两种方法:

此类C正在B的激活器中初始化并使用 ServiceRegistration 注册,因此它可以用作捆绑包A的远程对象。 A的激活器只是获取注册的对象C以便使用它的方法,这就是问题出现的地方。可以使用远程对象,但只有使用 String 的方法才能使用 JSONObject 方法。这发生在任何人身上吗?这可能是什么解释?

我已经通过调试和使用 try/catch 测试了这种行为,并且没有显示任何错误。还不得不说,当使用 JSONObject 方法时,捆绑A被冻结并且类C的方法中没有信号。现在,我将解析包 A 中的 JSONObject 到 String 以及包 B 中的 String 到 JSONObjects 的对象,但这仍然让我很烦。

PD:我正在使用org.codehaus.jettison.json.JSONObject

提前致谢。

0 投票
3 回答
1115 浏览

java - 签名的 jar 篡改验证

我有一个将 OSGI 捆绑包作为自签名 jar 文件提供服务的网络服务器。这些是在我的设备上使用 OSGI API 下载和安装的。我在 knopflerfish OSGI 中启用了安全性,并用我的公钥将其指向一个密钥库。我想验证我下载的代码不会被 MITM 攻击或其他方式篡改。

为了测试这一点,我尝试稍微更改并重新编译我之前签名和验证的一个捆绑包,使用 7zip 解压缩旧的签名 jar 和新编译的 jar,并复制 META-INF 文件夹的内容,覆盖仍然未签名的 MANIFEST.MF 并提供 .SF 和 .RSA 文件。当我尝试下载并安装这个 jar 文件时,我确实遇到了一个错误:

我还尝试了相反的方法,将新的 .class 文件复制到正确签名的 jar 中,并得到了同样的错误。

我不确定对安全方案的实际验证期望什么输出。我得到的错误是否意味着java检测到错误的签名并因此拒绝它?还是仅仅意味着当我手动写入 jar 文件时,7zip 并没有保持结构完整,比我更好的黑客仍然可以轻松篡改我的 jar 文件?

jarsigner -verify在被篡改的 jar 文件上给了我 java.lang.SecurityException: SHA-256 digest error 更有意义的信息,如果我“正确”篡改了 jar,我可以期待吗?