我的应用程序中运行在fuse esb中的osgi包需要bouncycastle提供的pgp加密。Bouncycastle提供程序不应对其他应用程序包/ fuse esb功能产生影响。既然bouncycastle不是OSGI jar,那么如何将其添加到融合ESB环境中呢?
我将bouncycastle jar重新打包为OSGI jar,但它给出了签名错误。我将jar复制到JDK安全目录,但是我的应用程序包并没有开始显示bouncycastle not found。与复制到karaf外部库目录相同。
发布于 2020-05-05 15:35:04
您没有指定Fuse ESB的版本(当时称为JBoss Fuse,现在称为Red Hat Fuse)。我用的是Fuse 7.6。
我检查了简单的pgp示例,我所需要的就是将bcpg-jdk15on-164.jar添加到$FUSE_HOME/lib/ext --这个目录已经包含了bcpkix和bcprov库。但是,bcpg库提供了OpenPGP支持。
从OSGi的角度来看,您只需要适当的导入(或动态导入)。不需要安装任何包,因为一切都是在$FUSE_HOME/etc/config.properties中配置的
org.osgi.framework.bootdelegation = \
...
sun.*, \
org.bouncycastle, \
org.bouncycastle.*, \
...如果你使用的是JBoss Fuse6.x,那也是一样的。Just $FUSE_HOME/lib/ext只包含bcprov-jdk15on.jar。
发布于 2020-05-22 15:39:23
1)将bouncycastle文件添加到lib/ext
2)在etc/config.properties中将bouncycastle包添加到bootdelegation (如上面的第一个答案)
3)从maven-bundle-plugin的imports部分显式删除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)在动态导入部分导入这些包
https://stackoverflow.com/questions/61606671
复制相似问题