在 fuse esb 中添加 bouncycastle 提供程序

Posted

技术标签:

【中文标题】在 fuse esb 中添加 bouncycastle 提供程序【英文标题】:Adding bouncycastle provider in fuse esb 【发布时间】:2020-05-05 05:57:52 【问题描述】:

我的应用程序中运行在 fuse esb 中的 osgi 包需要 bouncycastle 提供的 pgp 加密。 Bouncycastle 提供者不应影响其他应用程序捆绑包/融合 esb 功能。既然bouncycastle不是OSGI jar,那怎么添加到fuse ESB环境呢?

我将 bouncycastle jar 重新打包为 OSGI jar,但它给出了签名错误。我将 jar 复制到 JDK 安全目录,但我的应用程序包没有开始说找不到 bouncycastle 类。与复制到 karaf 外部库目录相同。

【问题讨论】:

【参考方案1】:

您没有指定 Fuse ESB 的版本(当时称为 JBoss Fuse,现在称为 Red Hat Fuse)。我用的是 Fuse 7.6。

我检查了一个简单的 pgp 示例,我只需要将 bcpg-jdk15on-164.jar 添加到 $FUSE_HOME/lib/ext - 这个目录已经包含 bcpkixbcprov 库。但是,bcpg 库提供了 OpenPGP 支持。

从 OSGi 的角度来看,您只需要正确的导入(或动态导入)。无需安装任何bundle,因为一切都在$FUSE_HOME/etc/config.properties中配置:

org.osgi.framework.bootdelegation = \
    ...
    sun.*, \
    org.bouncycastle, \
    org.bouncycastle.*, \
    ...

如果您使用的是 JBoss Fuse 6.x,则相同。仅$FUSE_HOME/lib/ext 仅包含bcprov-jdk15on.jar

【讨论】:

JBoss Fuse (6.0.0.redhat-024) 您的意思是作为包导入包含在 org.apache.felix maven 插件中,如下所示? javax.ws.rs, net.sf.cglib.proxy, 是的。顺便说一句,6.0.0.redhat-024 太旧了,我真的建议切换到更新的版本。 这意味着将所有 bouncycastle jar 复制到 $FUSE_HOME/lib/ext,如图所示编辑 $FUSE_HOME/etc/config.properties 并在包中导入 org.bouncycastle 包。我说的对吗? 它可以工作,但请不要认为这是受支持的(红帽)解决方案,因为这个版本非常非常旧。【参考方案2】:

1) 将 bouncycastle jar 文件添加到 lib/ext

2)在 etc/config.properties 中将 bouncycastle 包添加到 bootdelegation(如上第一个答案)

3) 从 maven-bundle-plugin 的导入部分中显式删除 bouncycastle 包

                 <Import-Package>
                        !org.bouncycastle.jce.*,
                        !org.bouncycastle.bcpg.*,
                        !org.bouncycastle.openpgp.*,
                        !org.bouncycastle.openpgp.operator.*,
                        !org.bouncycastle.openpgp.operator.bc.*,
                        !org.bouncycastle.openpgp.operator.jcajce.*,
                        *
                    </Import-Package>

4) 在动态导入部分导入这些包

【讨论】:

以上是关于在 fuse esb 中添加 bouncycastle 提供程序的主要内容,如果未能解决你的问题,请参考以下文章

WSO2 ESB 5.0.0 配置消息存储

为 Fused location API 添加 addGpsStatusListener

如何在 WSO2 ESB 中访问注册表

如何使用网络在Android中使用Fused Location Provider获取位置?

无法在目录WSO2 ESB中发送文件

WSO2 ESB 5.0.0 配置 JMS 传输(ActiveMQ)- 主题消息发布与订阅