Статус: Участник
Группы: Участники
Зарегистрирован: 21.09.2020(UTC) Сообщений: 10 Сказал(а) «Спасибо»: 1 раз
|
Коллеги, всем привет. Может кто-то подсказать где найти актуальный пример client'a для СМЭВ 1.3. Например, как этот, http://smev3.gosuslugi.r...hout%20dependencies).zipЕсли такого нет, то может кто-то знает, где достать src crypto-adapter 1.2? Сейчас при вызове метода DigitalSignatureFactory.init("JCP") из библиотеки crypto-adapter 1.2 вылезает ошибка Цитата:java.lang.NoClassDefFoundError: org/apache/xml/security/Init Использую java 8 + jcp-2.0.41789. Спасибо за ответ! Отредактировано пользователем 4 июня 2021 г. 13:54:57(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Xmlsec, xalan, serializer есть в зависимостях? В lib/ext? Jcp использует Xmlsec 1.5.0, см. в папке dependencies дистрибутива jcp. |
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
dar346 оставлено 04.06.2021(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 21.09.2020(UTC) Сообщений: 10 Сказал(а) «Спасибо»: 1 раз
|
Автор: Евгений Афанасьев Здравствуйте. Xmlsec, xalan, serializer есть в зависимостях? В lib/ext? Jcp использует Xmlsec 1.5.0, см. в папке dependencies дистрибутива jcp. Спасибо большое, помогло. Если кто не понял, то надо посмотреть версии в скаченном дистрибутиве например, jcp-2.0.41789(ваша версия)\dependencies (см. скриншот) dependency_jcp.jpg (172kb) загружен 4 раз(а).И добавить в модуль, где вызывается метод DigitalSignatureFactory.init("JCP"), необходимые зависимости. <dependency> <groupId>org.apache.santuario</groupId> <artifactId>xmlsec</artifactId> <version>1.5.0</version> - версия, которая указана в скаченном дистрибутиве jcp-2.0.41789(ваша версия)\dependencies </dependency> <dependency> <groupId>xalan</groupId> <artifactId>xalan</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>xalan</groupId> <artifactId>serializer</artifactId> <version>2.7.2</version> </dependency>
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 21.09.2020(UTC) Сообщений: 10 Сказал(а) «Спасибо»: 1 раз
|
Автор: Евгений Афанасьев Здравствуйте. Xmlsec, xalan, serializer есть в зависимостях? В lib/ext? Jcp использует Xmlsec 1.5.0, см. в папке dependencies дистрибутива jcp. Всем добрый день, помогите разобраться с примером пожалуйста. Спросить не у кого, есть пример с клиентом 1.1, ссылка в первом сообщении. Пытаюсь повторить аналогичный сценарий для СМЭВ 1.3. Использую java 8 + jcp-2.0.41789. Цитата: private static final String SMEV_URL = "http://smev3-d.test.gosuslugi.ru:5000/ws/smev-message-exchange-service-1.3.wsdl";
String contentString = xmlMapper.writeValueAsString(rootAssessmentBody);
initFileStore();
DigitalSignatureFactory.init(CRYPTO_PROVIDER);
KeyStoreWrapper keyStore = DigitalSignatureFactory.getKeyStoreWrapper();
PrivateKey spPrivateKey = keyStore.getPrivateKey(PERSONAL_CONTAINER_ALIAS, PERSONAL_CONTAINER_PASSWORD.toCharArray()); X509Certificate spCertificate = keyStore.getX509Certificate(PERSONAL_CONTAINER_ALIAS);
PrivateKey ovPrivateKey = keyStore.getPrivateKey(CONTAINER_ALIAS, CONTAINER_PASSWORD.toCharArray()); X509Certificate ovCertificate = keyStore.getX509Certificate(CONTAINER_ALIAS);
MessageExchangeEndpoint messageExchange = MessageExchangeEndpoint.create( SMEV_URL, FTP_ADDRESS, ovPrivateKey, ovCertificate );
String messageID = messageExchange.generateMessageID();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new InputSource(new StringReader(contentString)));
Element content = document.getDocumentElement();
// подготовка вложений List<InAttachment> attachmentList = new ArrayList<>(); // TODO тут формируем список вложений, если они есть
// можно включить трассировку запросов и ответов (по умолчанию выключена) InterceptorStorage.getRequest().setIntercept(true); InterceptorStorage.getResponse().setIntercept(true);
try { // используем ЭП-СП: PersonalSigner signPersonal = new KeyPersonalSignerImpl(spPrivateKey, spCertificate); messageExchange.sendRequest(messageID, content, signPersonal, null, attachmentList); } catch (Exception exception) { // тут могут быть разные exception в зависимости от ответа сервиса exception.printStackTrace(System.err); }
// через InterceptorStorage можно получить конверты запроса и ответа System.out.println(InterceptorStorage.getRequest().getString()); System.out.println(InterceptorStorage.getResponse().getString());
} При вызове метода sendRequest(messageID, content, signPersonal, null, attachmentList); возникает ошибка Цитата:ru.voskhod.crypto.exceptions.SignatureProcessingException: org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.signature.XMLSignatureException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.transforms.TransformationException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was javax.xml.stream.XMLStreamException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents
Может кто-то знает куда messageId надо добавить? Или в пример выше надо что-то добавить? Или этот пример вообще не действителен уже? Буду благодарен любой информации) Спасибо за ответ.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 29.12.2022(UTC) Сообщений: 1
Сказал(а) «Спасибо»: 1 раз
|
Автор: dar346 Автор: Евгений Афанасьев Здравствуйте. Xmlsec, xalan, serializer есть в зависимостях? В lib/ext? Jcp использует Xmlsec 1.5.0, см. в папке dependencies дистрибутива jcp. Всем добрый день, помогите разобраться с примером пожалуйста. Спросить не у кого, есть пример с клиентом 1.1, ссылка в первом сообщении. Пытаюсь повторить аналогичный сценарий для СМЭВ 1.3. Использую java 8 + jcp-2.0.41789. Цитата: private static final String SMEV_URL = "http://smev3-d.test.gosuslugi.ru:5000/ws/smev-message-exchange-service-1.3.wsdl";
String contentString = xmlMapper.writeValueAsString(rootAssessmentBody);
initFileStore();
DigitalSignatureFactory.init(CRYPTO_PROVIDER);
KeyStoreWrapper keyStore = DigitalSignatureFactory.getKeyStoreWrapper();
PrivateKey spPrivateKey = keyStore.getPrivateKey(PERSONAL_CONTAINER_ALIAS, PERSONAL_CONTAINER_PASSWORD.toCharArray()); X509Certificate spCertificate = keyStore.getX509Certificate(PERSONAL_CONTAINER_ALIAS);
PrivateKey ovPrivateKey = keyStore.getPrivateKey(CONTAINER_ALIAS, CONTAINER_PASSWORD.toCharArray()); X509Certificate ovCertificate = keyStore.getX509Certificate(CONTAINER_ALIAS);
MessageExchangeEndpoint messageExchange = MessageExchangeEndpoint.create( SMEV_URL, FTP_ADDRESS, ovPrivateKey, ovCertificate );
String messageID = messageExchange.generateMessageID();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new InputSource(new StringReader(contentString)));
Element content = document.getDocumentElement();
// подготовка вложений List<InAttachment> attachmentList = new ArrayList<>(); // TODO тут формируем список вложений, если они есть
// можно включить трассировку запросов и ответов (по умолчанию выключена) InterceptorStorage.getRequest().setIntercept(true); InterceptorStorage.getResponse().setIntercept(true);
try { // используем ЭП-СП: PersonalSigner signPersonal = new KeyPersonalSignerImpl(spPrivateKey, spCertificate); messageExchange.sendRequest(messageID, content, signPersonal, null, attachmentList); } catch (Exception exception) { // тут могут быть разные exception в зависимости от ответа сервиса exception.printStackTrace(System.err); }
// через InterceptorStorage можно получить конверты запроса и ответа System.out.println(InterceptorStorage.getRequest().getString()); System.out.println(InterceptorStorage.getResponse().getString());
} При вызове метода sendRequest(messageID, content, signPersonal, null, attachmentList); возникает ошибка Цитата:ru.voskhod.crypto.exceptions.SignatureProcessingException: org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.signature.ReferenceNotInitializedException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.signature.XMLSignatureException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was org.apache.xml.security.transforms.TransformationException: No message with ID "Can not perform transformation urn://smev-gov-ru/xmldsig/transform" found in resource bundle "org/apache/xml/security/resource/xmlsecurity" Original Exception was javax.xml.stream.XMLStreamException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents
Может кто-то знает куда messageId надо добавить? Или в пример выше надо что-то добавить? Или этот пример вообще не действителен уже? Буду благодарен любой информации) Спасибо за ответ. Подскажите, удалось решить проблему?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close