Конфликт JCE провайдера между веб-приложениями - PullRequest
0 голосов
/ 03 февраля 2020

Я запускаю веб-приложение в Tomcat, которое использует библиотеку sshj.
Эта библиотека вызывает Security.addProvider(BouncyCastleProvider) для регистрации BouncyCastle в качестве поставщика JCE.

Проблема, с которой я сталкиваюсь: похоже, что другое приложение на том же Tomcat мешает работе BouncyCastle. Когда sshj инициализируется, я получаю ошибки, что JAR из другого веб-приложения вообще имеет неподписанные записи. Похоже, что рассматриваемый JAR в другом веб-приложении также имеет свою собственную копию классов BouncyCastle. (См. Вопрос: https://github.com/hierynomus/sshj/issues/419)

Мой вопрос : как получается, что одно веб-приложение может сломать BouncyCastle в другом веб-приложении? Это потому, что Security является единичным на уровне JVM, позволяя классам из одного приложения проникать в другое? Это кажется нелогичным, учитывая типичное поведение изоляции загрузчика классов между веб-приложениями.

...