Несоответствующая целостность пакетов в Карафе между развертываниями
Фон
Я использую Karaf 4.2.0 на RHEL 6 с последней доступной Oracle JDK 1.8.x.
По соображениям безопасности я пытаюсь найти лучший способ проверить целостность пакетов, обслуживаемых компанией Karaf. Текущий подход, который я использую, заключается в вычислении SHA1-хэшей всех файлов bundle.jar, найденных на $KARAF_HOME/data/cache/bundle*/version0.0/
и сравните их с теми, что я развернул в другом экземпляре Карафа в другой среде.
Само развертывание полностью автоматизировано и работает каждый раз. Перед началом развертывания сначала останавливается Караф, затем data/cache
, data/tmp
а также data/kar
папки были очищены, Karaf снова запустился, и развертывание было выполнено в два этапа:
Установите толстый KAR, который охватывает все сторонние пакеты, необходимые для запуска моего приложения:
kar:install
Установите мои комплекты приложений через файл функций Karaf, размещенный в частном экземпляре Artifactory, вместе со ссылками на комплекты, используя:
feature:repo-add -i
Эта проблема
Каждое развертывание вызывает сторонние пакеты в data/cache/
папка с разными хэшами SHA1, даже если содержимое JAR идентично (проверяется путем их распаковки и запуска рекурсивного сравнения). Более того, SHA1 не совпадает с Maven Central. Похоже, что Караф переупаковывает банки в процессе их обслуживания от data/cache
Таким образом, разница в суммах SHA1.
Для моих собственных пакетов приложений их хэши SHA1 согласованы при повторном развертывании приложений (а также при развертывании одного и того же файла функций в разных средах), но всегда отличаются от тех, которые находятся на моем частном сервере Artifactory.
Есть ли способ обойти / исправить эту проблему непоследовательной целостности для пакетов, обслуживаемых от Карафа? data/cache
?