问题标签 [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.
java - OSGI knopflerfish 缺少软件包或无法解决它们
我有一个包含一些 jar 依赖项的包,但我不知道为什么,当我运行这个包时,它无法解析来自slf4j.jar
.
这是显示的错误knopflerfish
:
这是我的bundle manifest
:
java - OSGi:如何找出正在使用我正在导出的服务的捆绑包?
我正在尝试获取捆绑包的列表,这些捆绑包要么正在导入我的捆绑包正在导出的服务(我找不到获取其他捆绑包清单的方法),要么是获取订阅了我的捆绑包正在发布的服务的捆绑包列表。
到目前为止,我正在尝试列出其他捆绑包正在使用的所有 ServiceReference,以查看它们是否正在使用我的,但没有成功。
谢谢你。
java - OSGI:如何找出哪些包订阅了我的服务参考字典中定义的特定属性?
当我注册一个 ServiceReference 时,我定义了我在 Dictionary 类中发布的 OSGi 事件的主题,就像上下文方法定义说的那样:
registerService(类,服务,字典)
我的字典定义是:dictionary.put(EventConstants.EVENT_TOPIC, topics);
主题是一个字符串数组,其中包含一些字符串,这些字符串非常清楚地定义了我正在发布的每种可能的事件类型,如下所示:
字符串 [] 主题 = 新字符串 [] { "一", "二" };
我想知道哪些包订阅了字典中主题中定义的特定属性。我的意思是什么捆绑包将处理“TWO”的出版物。
谢谢。
java - OSGi:如何检测捆绑包何时注册到新服务
我想知道环境中的包何时使用 context.registerService(...) 注册服务。
有没有像 FrameworkEvent.STARTED 之类的监听器?
谢谢。
java - JSONObjects 不适用于 osgi 注册,不是作为函数参数,也不是作为返回
我正在使用 knopflerfish 环境,我正在尝试使用 ServiceRegistration 使用远程对象中的函数。我将举例说明。我创建了两个包,A和B。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。
提前致谢。
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,我可以期待吗?