java - 部署之间 Karaf 中的捆绑包完整性不一致
问题描述
背景
我在 RHEL 6 上使用 Karaf 4.2.0 和最新的可用 Oracle JDK 1.8.x。
出于安全原因,我试图找到验证 Karaf 提供的捆绑包完整性的最佳方法。我目前使用的方法是计算找到的所有 bundle.jar 文件的 SHA1 哈希值,$KARAF_HOME/data/cache/bundle*/version0.0/
并将它们与我在不同环境中部署到另一个 Karaf 实例的文件进行比较。
部署本身是完全自动化的,并且每次都能正常工作。部署开始前,先停止Karaf,然后data/cache
清理data/tmp
文件data/kar
夹,重新启动Karaf,按照以下两个步骤进行部署:
安装包含我的应用程序需要运行的所有第三方捆绑包的胖 KAR,其中:
kar:install
通过托管在私有 Artifactory 实例上的 Karaf 功能文件以及引用包安装我的应用程序包,其中:
feature:repo-add -i
问题
每次部署都会导致文件夹中的第三方包data/cache/
具有不同的 SHA1 哈希,即使 JAR 内容相同(通过解包并运行递归差异来验证)。此外,SHA1 与 Maven Central 中的不匹配。看起来 Karaf 在从 为 JAR 提供服务的过程中重新打包了 JAR data/cache
,从而产生了 SHA1 总和的差异。
对于我自己的应用程序包,它们的 SHA1 哈希值在应用程序重新部署(以及将相同功能文件部署到不同环境)之间是一致的,但始终与我的私有 Artifactory 服务器上的不同。
有什么方法可以绕过/解决 Karaf 提供的捆绑包完整性不一致的问题data/cache
?
解决方案
推荐阅读
- .net - Inriver PIM - 工作区根文件夹为空
- python - selenium 如何在没有本地保存的情况下将屏幕截图上传到远程?
- java - 如何使用 Eclipse 制作 Android 应用程序
- javascript - 在 R 中单击传单中的按钮时显示摘要统计信息
- python - python-binance:获取所有订单,不指定符号
- salesforce - 即使案例停止,如何处理里程碑计时器仍在闪电运行?在销售人员中
- java - “无法连接到 Browsermob-Proxy 出现代理错误。” 在Linux中
- php - 如何在codeigniter中获取Ajax成功函数数据
- angular - 如何在打字稿/角度程序上使用 hubspot Conversations sdk?
- javascript - 要求使 div 可拖动而不是放在屏幕外