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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Елена Зубова  
#1 Оставлено : 22 июня 2023 г. 11:26:42(UTC)
Елена Зубова

Статус: Новичок

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

Здравствуйте.

Есть веб-сервис, использующий ГОСТ TLS. Требуется к нему подключиться.
Что сделано:
1. Установили Крипто Про CSP.
2. При обращении к веб-сервису через браузер добавили в Windows сертификат в доверенные центры сертификации.

Канал, по которому осуществляется взаимодействие, должен быть защищен по ГОСТу. Защищенное соединение устанавливается с помощью JTLS (используем v.2.0, rel.2.0.41940-A).

Установлено:
AdoptOpenJDK-11.0.9

jcp-2.0.41940-A
запускаем проект командой
"C:\JAVA\AdoptOpenJDK-11.0.9\bin\java" -cp "C:\JAVA\jcp-2.0.41940-A\;*;" -jar project.jar

В проекте импортируются классы
import ru.CryptoPro.Crypto.CryptoProvider;
import ru.CryptoPro.JCP.JCP;
import ru.CryptoPro.reprov.RevCheck;

Проблема:
При настройке провайдера
Security.addProvider(new JCP()); // JCP
Получаем ошибку:
Method threw 'java.lang.NoClassDefFoundError' exception.

Could not initialize class ru.CryptoPro.JCP.JCP
java.lang.NoClassDefFoundError: Could not initialize class ru.CryptoPro.JCP.JCP


Что пробовали, но не помогло:
Добавить JCP.jar и другие из криптопро в проект, в директорию с установленной java, также пробовали проект запускать из директории с установленным криптопро.
Offline Евгений Афанасьев  
#2 Оставлено : 22 июня 2023 г. 18:39:40(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Не уверен, что -cp будет работать в случае -jar.
В случае -jar должен быть настроен манифест внутри исполняемого jar. Такие, например, создает spring boot.
project.jar просто "не видит" требуемых классов.
Offline basid  
#3 Оставлено : 22 июня 2023 г. 18:54:16(UTC)
basid

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

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

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 151 раз в 136 постах
Автор: Елена Зубова Перейти к цитате
java -cp "C:\JAVA\jcp-2.0.41940-A\;*;" -jar project.jar
Код:
java -cp "C:\JAVA\jcp-2.0.41940-A\*;protect.jar main.класс.protect.jar

Ну или:
Код:
set CLASSPATH=...
java -jar protect.jar

Ещё можно сделать прописать Class-Path в манифесте вашего jar-файла. В этом случае лучше, чтобы путь к сторонним классам/архивам был относительный.
Offline Елена Зубова  
#4 Оставлено : 26 июня 2023 г. 17:57:15(UTC)
Елена Зубова

Статус: Новичок

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

Цитата:
Здравствуйте.
Не уверен, что -cp будет работать в случае -jar.
В случае -jar должен быть настроен манифест внутри исполняемого jar. Такие, например, создает spring boot.
project.jar просто "не видит" требуемых классов.


Спасибо, помогло.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.