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