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

Уведомление

Icon
Error

16 Страницы«<1213141516>
Опции
К последнему сообщению К первому непрочитанному
Offline Inviz  
#131 Оставлено : 2 июля 2015 г. 10:49:54(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Автор: afev Перейти к цитате
Предположительно, eagames-ru и Inviz.


У меня пока не получилось. Т.к. проверку метки времени еще не сделали - пользуемся старой подписью (она нормально принимается пока что).
Сейчас разгребаем кучу проблем нового формата...
Скоро надеюсь попробовать Ваш вариант.
Offline belgampaul  
#132 Оставлено : 2 июля 2015 г. 13:45:40(UTC)
belgampaul

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

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

Поблагодарили: 2 раз в 1 постах
Автор: ARnikev Перейти к цитате
Автор: belgampaul Перейти к цитате
Автор: ARnikev Перейти к цитате



Ясно, у вас все сложно как-то). У нас вроде нет такого рода проблем. Спасибо за пояснения.

Добавил библиотеку в пост выше.



Offline ARnikev  
#133 Оставлено : 2 июля 2015 г. 14:37:39(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
afev, посмотрите ЛС пожалуйста.
Offline Bpar  
#134 Оставлено : 8 июля 2015 г. 10:31:30(UTC)
Bpar

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

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

Поблагодарили: 2 раз в 2 постах
Offline ctacon183  
#135 Оставлено : 12 ноября 2015 г. 8:59:34(UTC)
ctacon183

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

Группы: Участники
Зарегистрирован: 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=&#4;&#30;&#4;&#30;&#4;&#30;\00 \00\"&#4;&#26;&#4; &#4;&#24;&#4;&#31;&#4;\"&#4;&#30;\00-&#4;&#31;&#4; &#4;&#30;\00\",O=&#4;&#30;&#4;&#30;&#4;&#30;\00 \00\"&#4;&#26;&#4; &#4;&#24;&#4;&#31;&#4;\"&#4;&#30;\00-&#4;&#31;&#4; &#4;&#30;\00\",L=&#4;&#28;&#4;\&gt;&#4;A&#4;:&#4;2&#4;0,ST=&#4;3\00.\00 &#4;&#28;&#4;\&gt;&#4;A&#4;:&#4;2&#4;0,C=RU,1.2.840.113549.1.9.1=#16107163614063727970746f70726f2e7275,STREET=&#4;C&#4;\;\00.\00 &#4;!&#4;C&#4;I&#4;Q&#4;2&#4;A&#4;:&#4;8&#4;9\00 &#4;2&#4;0&#4;\;\00 &#4;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)  | Причина: Не указана

Offline solncer1  
#136 Оставлено : 27 ноября 2015 г. 15:16:18(UTC)
solncer1

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

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

Добрый день! У меня аналогичная проблема с кодировкой ds:X509IssuerName. Но удаление этого элемента недопустимо, потому что он входит в SignedProperties, и соответственно подпись после его удаления не валидируется. Подскажите пожалуйста, как выставить правильную кодировку.
Offline Franco  
#137 Оставлено : 30 ноября 2015 г. 12:07:57(UTC)
Franco

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

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

Коллеги, Добрый день.

Перечитал тему, но ни один вариант (а я насчитал 2 более менее рабочих варианта) у меня не заработал.
Кто-нибудь нашел рабочее решение для подписи сообщения в формате XAdES?
Offline Franco  
#138 Оставлено : 30 ноября 2015 г. 13:55:41(UTC)
Franco

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

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

Про генерация классов по wsdl: я генерировал классы не с помощью компилятора wsimport, а с помощью xjc (соответственно, использовалась wsdl, а, значит, корневая xsd). Все классы сгенерились, руками ничего не правил.
Offline Franco  
#139 Оставлено : 30 ноября 2015 г. 14:06:24(UTC)
Franco

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

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

Было бы прекрасно, если бы кто-нибудь поделился кодом...
Offline ctacon183  
#140 Оставлено : 30 ноября 2015 г. 14:15:24(UTC)
ctacon183

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

Группы: Участники
Зарегистрирован: 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). После чего стал использоваться нормальный текст.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
16 Страницы«<1213141516>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.