logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

8 Страницы<12345>»
Опции
К последнему сообщению К первому непрочитанному
Offline ARnikev  
#41 Оставлено : 17 июня 2015 г. 13:59:03(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Со мной коллега поделился подправленным wsdl, с которого генерируется полный набор java классов, необходимых для формирования сообщения. Могу поделиться если нужно кому.
Offline Евгений Афанасьев  
#42 Оставлено : 17 июня 2015 г. 14:10:50(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Автор: Corzina Перейти к цитате
Проверил подпись на боевом сервере ГИСГМП - все платежи за сегодня прошли проверку ЭЦП и успешно были импортированы.

Спасибо. Только нужно учитывать, что в коде в архиве используется тестовая TSP служба (если, конечно, вы брали ее адрес).

Автор: ARnikev Перейти к цитате
Со мной коллега поделился подправленным wsdl, с которого генерируется полный набор java классов, необходимых для формирования сообщения. Могу поделиться если нужно кому.

Не могли бы вы его приложить? Он может пригодиться.

Техническую поддержку оказываем тут
Наша база знаний
Offline ARnikev  
#43 Оставлено : 17 июня 2015 г. 14:15:46(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате

Автор: ARnikev Перейти к цитате
Со мной коллега поделился подправленным wsdl, с которого генерируется полный набор java классов, необходимых для формирования сообщения. Могу поделиться если нужно кому.

Не могли бы вы его приложить? Он может пригодиться.


fk_3998.zip (48kb) загружен 29 раз(а).
thanks 2 пользователей поблагодарили ARnikev за этот пост.
Евгений Афанасьев оставлено 17.06.2015(UTC), Corzina оставлено 17.06.2015(UTC)
Offline Inviz  
#44 Оставлено : 17 июня 2015 г. 15:19:48(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Автор: ARnikev Перейти к цитате
Господа, извиняюсь за немного оффтоп. Как у вас получилось вменяемые java классы получить из wsdl и xsd схем нового формата? У меня из текущего wsdl получается довольно мало java классов, как минимум отсутствуют основные GISGMPTransferMsg, ChargeType. Использую Apache CFX wsdl2java. Из wsdl старого формата все корректно формируется.


Я добавил еще один импорт в типы и все сгенирилось через wsimport нормально

<wsdl:types>
<xsd:schema targetNamespace="http://roskazna.ru/gisgmp/02000000/SmevGISGMPService/" xmlns:smev="http://smev.gosuslugi.ru/rev120315">
<xsd:import schemaLocation="xsd/request/smev.unifo.rev120315.xsd" namespace="http://smev.gosuslugi.ru/rev120315"/>
<xsd:import schemaLocation="xsd/request/Message.xsd" namespace="http://roskazna.ru/gisgmp/xsd/116/Message"/>
<xsd:element name="GISGMPTransferMsg" type="smev:BaseMessageType"/>
</xsd:schema>
</wsdl:types>
Offline Inviz  
#45 Оставлено : 17 июня 2015 г. 15:22:31(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Автор: eagames-ru Перейти к цитате
Автор: ARnikev Перейти к цитате
Цитата:
Сделал только схемы из Message.xsd, а до него руками собираю/разбираю сообщение.

Можно подробнее пожалуйста, вчера тоже на это дело целый день убил, никак не могу понять почему не получается нормальной иерархии классов. Как вы формируете сообщение для отправки теперь? Не из java классов объект GISGMPTransferMsg, а потом его маршалите в xml? Руками xml формируете сразу чтоле?



Открываете доку по ГИС ГМП 1.16.1 там внизу будет архив с XSD схемами - распакуйте в папку проекта.

далее в netbeans делаем JAXB привязку, выбираем файл Message.xsd и все. появляются новые классы, используйте их.


Можно как я выше написал добавить импорт а потом не jaxb привязку а "клиент веб-сервиса" и все типы будут созданы.
Offline Inviz  
#46 Оставлено : 17 июня 2015 г. 15:36:28(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Мне тут внезапно тех. поддержка ЕТК ответила
"Пока крипто сервис ГИС ГМП не проверяет метку времени. Сроки включения пока не определены."
Offline servelat  
#47 Оставлено : 18 июня 2015 г. 12:34:20(UTC)
servelat

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

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

Пока не будет централизованного TSA решения, не будут наверное проверять.
Offline ARnikev  
#48 Оставлено : 18 июня 2015 г. 13:41:22(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?

Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом?
Offline ARnikev  
#49 Оставлено : 18 июня 2015 г. 16:17:37(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате

2. Архив примеров (samples-sources.jar).
В частности, добавлен пример создания XAdES-T - XAdESExample в пакет xades и GisGmpServiceExample в xades.gisgmp.
С помощью XAdESExample можно подписать и проверить документ (узел). Перед запуском нужно иметь в папке data (см. архив) пару файлов с именами SOAP_etalon_pay.xml и SOAP_etalon_pay_response_1_id.xml и скопировать ключевой контейнер test. Для XAdES-T используется тестовый ключевой контейнер из класса Container2001 (в пакете CAdES.configuration.container) и хранилище доверенных сертификатов xadesTrustStore с паролем 1 для проверки подписи.
Пример GisGmpServiceExample в пакете xades.gisgmp осуществляет последовательно подпись документа с именем SOAP_etalon_pay.xml, затем создание Security Header и подпись всего документа с помощью специального контейнера с сертификатом, выпущенным в аккредитованном УЦ (иначе не проходила проверка подписи). Затем из полученного ответа извлекается package id, формируется запрос из документа SOAP_etalon_pay_response_1_id.xml с подстановкой package id, запрос с package id отправляется и получается ответ.
Существование проблемы с версией xades в документе пока не установлено.
3. Тестовый ключевой контейнер test с паролем 1, выпущен в тестовом УЦ (для подписи XAdES-T).
4. Хранилище доверенных сертификатов xadesTrustStore с паролем 1 в папке data (для проверки подписи XAdES-T).

Потребуются зависимости (xades - для XAdeS-T подписи и wss4j для общей подписи) из папки dependencies:

aopalliance-1.0.jar
bcpkix-jdk15on-1.50.jar
bcprov-jdk15on-1.50.jar
guice-2.0.jar
guice-multibindings-2.0.jar
axis-1.4.jar
axis-jaxrpc-1.4.jar
commons-discovery-0.5.jar
commons-logging-1.1.1.jar
hamcrest-core-1.3.jar
joda-time-1.6.2.jar
opensaml-2.5.1-1.jar
openws-1.4.2-1.jar
serializer-2.7.1.jar
slf4j-api-1.7.9.jar
wsdl4j-1.6.2.jar
wss4j-1.6.18.jar
xades4j-1.3.2.jar
xalan-2.7.0.jar
xercesImpl-2.9.1.jar
xml-apis-1.3.04.jar
xmlsec-1.5.0.jar
xmltooling-1.3.2-1.jar

, установленный JCP со снятыми ограничениями и ключевой контейнер с сертификатом, выпущенным в аккредитованном УЦ (для общей подписи в Security Header).
Пожалуй, лучше всего было, если бы кто-нибудь попробовал проверить, используя правильный (существующий) sender (recipient) в документе (и другие правильно заполненные поля).

P.S.
Архив


Подскажите пожалуйста, 1) какую версию JCP вы тут использовали, т.к. в моей отсутствуют допустим вот эти константы JCP.GOST_DIGEST_2012_512_OID, Consts.URN_GOST_DIGEST_2012_512, которые использованы в примере. 2) ru.CryptoPro.CAdES - из какого jar'ника вот этот пакет берется, немогу найти его в зависимостях?

upd. на счет второго пункта, порылся на сайте, походу вот это используется https://www.cryptopro.ru/products/cades/downloads ?

upd2. Выяснил что версия JCP 2.0.38150 используется и в ней есть все, что указал в пунктах 1 и 2. Вот только она не сертифицированная...

Отредактировано пользователем 18 июня 2015 г. 16:44:55(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#50 Оставлено : 18 июня 2015 г. 17:46:20(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Автор: ARnikev Перейти к цитате

Подскажите пожалуйста, 1) какую версию JCP вы тут использовали, т.к. в моей отсутствуют допустим вот эти константы JCP.GOST_DIGEST_2012_512_OID, Consts.URN_GOST_DIGEST_2012_512, которые использованы в примере. 2) ru.CryptoPro.CAdES - из какого jar'ника вот этот пакет берется, немогу найти его в зависимостях?
upd. на счет второго пункта, порылся на сайте, походу вот это используется https://www.cryptopro.ru/products/cades/downloads ?
upd2. Выяснил что версия JCP 2.0.38150 используется и в ней есть все, что указал в пунктах 1 и 2. Вот только она не сертифицированная...

В случае JCP 1.0.54 - удалите JCP.GOST_DIGEST_2012_512_OID, Consts.URN_GOST_DIGEST_2012_512 и т.п.
Техническую поддержку оказываем тут
Наша база знаний
Offline ARnikev  
#51 Оставлено : 19 июня 2015 г. 9:54:08(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
При подписывании сущности, используя пример, выложенный выше, получаю ошибку:
Код:
Caused by: org.apache.xml.security.signature.XMLSignatureException: The requested algorithm urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411 does not exist. Original Message was: null
Original Exception was java.lang.NullPointerException
	at org.apache.xml.security.algorithms.SignatureAlgorithm.getSignatureAlgorithmSpi(SignatureAlgorithm.java:160)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:135)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:106)
	at org.apache.xml.security.signature.SignedInfo.<init>(SignedInfo.java:141)
	at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:301)
	at xades4j.production.SignerBES.createSignature(SignerBES.java:309)
	... 20 more


Где он этот алгоритм не может найти?Think

upd. нашел какую-то бородатую тему тоже по этой проблеме - https://www.cryptopro.ru...aspx?g=posts&t=4136, но я использую ту же версию xmlsec-1.5.0 что и в примере для подписи xades...

Отредактировано пользователем 19 июня 2015 г. 10:20:45(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#52 Оставлено : 19 июня 2015 г. 10:33:01(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Выполняете JCPXMLDSigInit.init(); в начале? Какие-нибудь еще инициализации есть?
Техническую поддержку оказываем тут
Наша база знаний
Offline ARnikev  
#53 Оставлено : 19 июня 2015 г. 10:48:05(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Выполняете JCPXMLDSigInit.init(); в начале? Какие-нибудь еще инициализации есть?

Код:

org.apache.xml.security.Init.init();
xmlDSigProvider = new ru.CryptoPro.JCPxml.dsig.internal.dom.XMLDSigRI();
HDImageStore.setDir(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.path"));

KeyStore keyStore = KeyStore.getInstance(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.type"));
keyStore.load(null, null);
privateKey = (PrivateKey) keyStore.getKey(
                    ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.alias"),
                    ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.password").toCharArray()
            );

cert = (X509Certificate) keyStore.getCertificate(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.alias"));


Вот все что делаю перед подписыванием...

upd. попробовал добавить еще JCPXMLDSigInit.init() в начале, та же самая ошибка...

Отредактировано пользователем 19 июня 2015 г. 11:05:55(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#54 Оставлено : 19 июня 2015 г. 11:10:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();
Техническую поддержку оказываем тут
Наша база знаний
Offline ARnikev  
#55 Оставлено : 19 июня 2015 г. 11:25:07(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();

Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться.
А в чем разница между двумя этими инитами?
Offline Евгений Афанасьев  
#56 Оставлено : 19 июня 2015 г. 11:32:40(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Автор: ARnikev Перейти к цитате
Автор: afev Перейти к цитате
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();

Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться.
А в чем разница между двумя этими инитами?


JCPXMLDSigInit.init() выполняет org.apache.xml.security.Init.init(), но только передает ему конфиг с ГОСТами, находящийся в JCPxml, ведь в самом config.xml внутри xmlsec нет ГОСТ алгоритмов.

Техническую поддержку оказываем тут
Наша база знаний
Offline ARnikev  
#57 Оставлено : 19 июня 2015 г. 11:33:52(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Получилось сформировать подписанное сообщение наконец-то. На портале СМЭВ (http://smev.gosuslugi.ru/portal/services-tools.jsp) проверку проходит, а вот сервис выдает следующую невнятную ошибку:
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>java.util.MissingFormatArgumentException: Format specifier 's'</faultstring>
      </S:Fault>
   </S:Body>
</S:Envelope>


Сталкивался кто?
Offline ARnikev  
#58 Оставлено : 19 июня 2015 г. 11:35:23(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах

JCPXMLDSigInit.init() выполняет org.apache.xml.security.Init.init(), но только передает ему конфиг с ГОСТами, находящийся в JCPxml, ведь в самом config.xml внутри xmlsec нет ГОСТ алгоритмов.

Понятно, спасибо. Непонятно только как у меня раньше работала подпись при старом формате СМЭВ, ведь я инициализацию делал только таким образом - org.apache.xml.security.Init.init();

Offline Inviz  
#59 Оставлено : 22 июня 2015 г. 10:40:56(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Автор: ARnikev Перейти к цитате
Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?

Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом?


Насколько я понял при импорте сущности проверяется только подпись всего сообщения.
Результат проверки подписи сущности можно узнать только запросив статус импорта..
Offline Corzina  
#60 Оставлено : 22 июня 2015 г. 11:13:57(UTC)
Corzina

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Автор: Inviz Перейти к цитате
Автор: ARnikev Перейти к цитате
Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?

Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом?


Насколько я понял при импорте сущности проверяется только подпись всего сообщения.
Результат проверки подписи сущности можно узнать только запросив статус импорта..


Подпись всего сообщения остается без изменения, XAdES-T ставится только под сущностью FinalPayment. Поэтому Вас сразу СМЭВ и выбрасывает и платеж до ГИСГМП не доходит
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
8 Страницы<12345>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.