Статус: Участник
Группы: Участники
Зарегистрирован: 04.06.2015(UTC) Сообщений: 10
Поблагодарили: 1 раз в 1 постах
|
Автор: afev Предположительно, eagames-ru и Inviz. У меня пока не получилось. Т.к. проверку метки времени еще не сделали - пользуемся старой подписью (она нормально принимается пока что). Сейчас разгребаем кучу проблем нового формата... Скоро надеюсь попробовать Ваш вариант.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.06.2015(UTC) Сообщений: 8
Поблагодарили: 2 раз в 1 постах
|
Автор: ARnikev Автор: belgampaul Автор: ARnikev
Ясно, у вас все сложно как-то). У нас вроде нет такого рода проблем. Спасибо за пояснения. Добавил библиотеку в пост выше.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.10.2013(UTC) Сообщений: 56
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 1 постах
|
afev, посмотрите ЛС пожалуйста.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.08.2014(UTC) Сообщений: 12
Поблагодарили: 2 раз в 2 постах
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.11.2015(UTC) Сообщений: 2 Откуда: г Барнаул
|
Добрый день. Используя ваш пример подпись успешно сформировалась. Но при отправке soap запроса через jaxws получаю исключение: Цитата: javax.xml.ws.WebServiceException: com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x4) in text to output at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:112) at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:278) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:165) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:95) at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:133) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470) at com.sun.xml.ws.client.Stub.process(Stub.java:319) at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:157) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140) at $Proxy41.gisgmpTransferMsg(Unknown Source) at ....sendPaymentRequest(GisClientV16.java:106) Caused by: com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x4) in text to output at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:511) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:135) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.util.DOMUtil.serializeNode(DOMUtil.java:138) at com.sun.xml.ws.message.saaj.SAAJMessage.writeTo(SAAJMessage.java:365) at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:109) ... 17 more Caused by: java.io.IOException: Invalid white space character (0x4) in text to output at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545) at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:531) at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:509) ... 37 more
Скорее всего проблема в том, что в итоговом xml xades4j формирует X509IssuerName так: Цитата: <ns3:X509IssuerName>CN=\00 \00\" \"\00- \00\",O=\00 \00\" \"\00- \00\",L=\>A:20,ST=3\00.\00 \>A:20,C=RU,1.2.840.113549.1.9.1=#16107163614063727970746f70726f2e7275,STREET=C\;\00.\00 !CIQ2A:89\00 20\;\00 4\00.\00 \001\008,1.2.643.3.131.1.1=#120c303037373137313037393931,1.2.643.100.1=#120d31303337373030303835343434</ns3:X509IssuerName>
Думаю из-за наличия кирилицы, что с точки зрения xml считается не корректным. Как на это можно повлиять? ******************************************************************************************** Решил проблему следующим образом: удалил элемент X509IssuerName из подписанного сообщения. Смев вернул успешный ответ, видимо этот элемент не нужен. Код, может кому пригодится: Цитата: signer.sign(dataObjects, nodeToSign); org.w3c.dom.Node issuerSerial = XPathAPI.selectSingleNode(nodeToSign.getParentNode(), "//*[local-name()='IssuerSerial']"); org.w3c.dom.Node issuerName = XPathAPI.selectSingleNode(issuerSerial, "//*[local-name()='X509IssuerName']"); issuerSerial.removeChild(issuerName);
Интересно, есть ли более элегантное решение? Отредактировано пользователем 12 ноября 2015 г. 11:36:20(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.11.2015(UTC) Сообщений: 2
|
Добрый день! У меня аналогичная проблема с кодировкой ds:X509IssuerName. Но удаление этого элемента недопустимо, потому что он входит в SignedProperties, и соответственно подпись после его удаления не валидируется. Подскажите пожалуйста, как выставить правильную кодировку.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.11.2015(UTC) Сообщений: 4
|
Коллеги, Добрый день.
Перечитал тему, но ни один вариант (а я насчитал 2 более менее рабочих варианта) у меня не заработал. Кто-нибудь нашел рабочее решение для подписи сообщения в формате XAdES?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.11.2015(UTC) Сообщений: 4
|
Про генерация классов по wsdl: я генерировал классы не с помощью компилятора wsimport, а с помощью xjc (соответственно, использовалась wsdl, а, значит, корневая xsd). Все классы сгенерились, руками ничего не правил.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.11.2015(UTC) Сообщений: 4
|
Было бы прекрасно, если бы кто-нибудь поделился кодом...
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.11.2015(UTC) Сообщений: 2 Откуда: г Барнаул
|
Автор: solncer1 Добрый день! У меня аналогичная проблема с кодировкой ds:X509IssuerName. Но удаление этого элемента недопустимо, потому что он входит в SignedProperties, и соответственно подпись после его удаления не валидируется. Подскажите пожалуйста, как выставить правильную кодировку. Верно. Я сначала подумал, что проверка подписи прошла, когда получил успешный ответ на платеж. Но когда запросил статус, вернулась ошибка проверки подписи. Вообще проблема в том, что javax.security.auth.x500.X500Principal.getName() по умолчанию использует X500Principal.RFC2253 формат, который печатает не корректные для xml символы. Для меня корректно печатает формат RFC1779, проверить можно так: Цитата: ((X509Certificate)publicCert).getIssuerX500Principal().getName(X500Principal.RFC1779);
xades4j как раз вызывает метод без аргументов. Выкачал исходники xades4j и поменял в классах, где встречается getIssuerX500Principal().getName() на getIssuerX500Principal().getName(X500Principal.RFC1779). После чего стал использоваться нормальный текст.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close