Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline imgen  
#1 Оставлено : 18 мая 2021 г. 19:29:40(UTC)
imgen

Статус: Участник

Группы: Участники
Зарегистрирован: 13.05.2021(UTC)
Сообщений: 17

Добрый день, подскажите, какие пакеты необходимо подключать, желательно бы maven.
Получаю ошибку о ненайденном классе:
Цитата:
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/cms/CMSException
at com.company.Main.main(Main.java:106)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.cms.CMSException

Вот код:
Код:

PrivateKey privateKey = (PrivateKey) ks.getKey( alias, keystorePass.toCharArray() );

        X509Certificate cert = (X509Certificate) ks.getCertificate( alias );
        List<X509Certificate> chain = Arrays.asList( cert );
        //new sign
        CAdESSignature cadesSignature = new CAdESSignature( true );

        //add certs in sign
        Collection<X509CertificateHolder> holderList = new ArrayList<X509CertificateHolder>();
        for (X509Certificate cert1 : chain)
        {
            holderList.add(new X509CertificateHolder(cert1.getEncoded()));
        }
        cadesSignature.setCertificateStore(new CollectionStore(holderList));

Пробовал подключать org.bouncycastle:bcpkix-jdk15on различных версий, но безрезультатно.
Offline Евгений Афанасьев  
#2 Оставлено : 18 мая 2021 г. 20:42:43(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте. В папке dependencies дистрибутива jcp лежат библиотеки bc, в имени файлов есть версии, которые можно указать для maven. Если дистрибутив jcp из последних, то может быть bc 1.60.
Offline imgen  
#3 Оставлено : 18 мая 2021 г. 21:17:54(UTC)
imgen

Статус: Участник

Группы: Участники
Зарегистрирован: 13.05.2021(UTC)
Сообщений: 17

В скачанной версии с оффициального сайта в папке зависимостей лежит bcpkix-jdk15on-1.50. Подключение его, да и всех остальных jar не дает нужного результата. Из maven версия 1.60 так же не помогает.
Offline Евгений Афанасьев  
#4 Оставлено : 18 мая 2021 г. 21:26:46(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: imgen Перейти к цитате
В скачанной версии с оффициального сайта в папке зависимостей лежит bcpkix-jdk15on-1.50.

Значит, такая и должна быть использована. Возможно, у вас подключена также другая версия (или лежит в lib/ext, или иначе).
Offline imgen  
#5 Оставлено : 27 мая 2021 г. 21:01:57(UTC)
imgen

Статус: Участник

Группы: Участники
Зарегистрирован: 13.05.2021(UTC)
Сообщений: 17

Для тех, кто столкнется с такой ошибкой. Необходимо скопировать самостоятельно все пакеты bc в папку jre/lib/ext/
Offline Nikita.Mikhailov  
#6 Оставлено : 23 августа 2021 г. 17:10:30(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

А есть способ использовать bouncycastle из maven?
Offline Евгений Афанасьев  
#7 Оставлено : 23 августа 2021 г. 21:36:40(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: Nikita.Mikhailov Перейти к цитате
А есть способ использовать bouncycastle из maven?

Вы имеете в виду не класть в lib/ext? С версией JCP 2.0-A для java 10+.

Offline Nikita.Mikhailov  
#8 Оставлено : 23 августа 2021 г. 21:57:52(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

Цитата:
Вы имеете в виду не класть в lib/ext?


Да, именно. Но почему-то не получается поднять в java 11 + tomcat 9.
Пока удалось перенесением библиотек bouncycastle в папку /tomcat/lib

Тоесть, если так не делать будет ошибка, что класс не найден, хотя он есть в WEB-INF/lib, но почему-то не подгружается.
Offline basid  
#9 Оставлено : 24 августа 2021 г. 7:32:02(UTC)
basid

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 1,037

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 140 раз в 126 постах
У сервлет-контейнера есть три класс-путя (Котяра):
1. Системный (устанавливается перед запуском JVM);
2. Серверный CATALINA.HOME;
3. Экземпляра CATALINA.BASE.
Плюс - контексты "приложений" сайта.
Так вот, размещать "глобальные" классы в контексте приложения - плохая идея. Плохая по целому ряду причин, включая недоступность прикладного контекста в контексте экземпляра.
Offline Nikita.Mikhailov  
#10 Оставлено : 24 августа 2021 г. 12:43:26(UTC)
Nikita.Mikhailov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.08.2019(UTC)
Сообщений: 10
Российская Федерация

В полне подозреваю, что я что-то не понимаю, но тем не менее спасибо за ответ.

Просто в документации tomcat 9 указывается порядок работы classloader - https://tomcat.apache.or.../class-loader-howto.html

Цитата:

Bootstrap classes of your JVM
/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
System class loader classes (described above)
Common class loader classes (described above)


Тоесть классы из /WEB-INF/lib таки грузятся, но в моём случае грузятся не все что нужны.

Получается из вашего комментария, для того чтобы bouncycastle работал из maven, мне и все JCP библиотеки нужно перенести в WEB-INF/lib, чтобы соблюсти области видимости?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.