Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
Собственно тема: СМЭВ добавление подписи (/soap:Envelope/soap:Header/wsse:Security) в SOAP пакет в рамках SOAP WEB сервиса (ГИС ГМП).
Как вообще добавляется заголовок в SOAP пакет в рамках WEB сервиса?
То есть если лапками делать XML,то понятно, но как то неправильно если предоставлен сервис.
Но сервис SmevGISGMPService имеет только один метод gisgmpTransferMsg у которого только два параметра message и messageData обёрнутые в Holder и никакого заголовка.
Весь маршалинг через JAXB скрыт.
С какого бока тут приделывать заголовок пакета не понимаю.
В инете все примеры - это именно вручную собирать XML, вставлять туда заголовок с подписью и потом отправлять по HTTP.
Неужели по другому никак? Зачем тогда предоставлен сервис SOAP?
30 сен 19, 14:01    [21982701]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn
В инете все примеры - это именно вручную собирать XML,
а тут в форуме?
30 сен 19, 14:16    [21982720]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp, Считаете что Гугл не включает в поиск данный форум. :)
30 сен 19, 14:25    [21982730]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn
PetroNotC Sharp, Считаете что Гугл не включает в поиск данный форум. :)
ну если не нашли, как мне считать. Я давал тут пример калькулятора. С апи верхнего уровня.
30 сен 19, 14:35    [21982744]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4839
sergnn
Собственно тема: СМЭВ добавление подписи (/soap:Envelope/soap:Header/wsse:Security) в SOAP пакет в рамках SOAP WEB сервиса (ГИС ГМП).
Как вообще добавляется заголовок в SOAP пакет в рамках WEB сервиса?
То есть если лапками делать XML,то понятно, но как то неправильно если предоставлен сервис.
Но сервис SmevGISGMPService имеет только один метод gisgmpTransferMsg у которого только два параметра message и messageData обёрнутые в Holder и никакого заголовка.
Весь маршалинг через JAXB скрыт.
С какого бока тут приделывать заголовок пакета не понимаю.
В инете все примеры - это именно вручную собирать XML, вставлять туда заголовок с подписью и потом отправлять по HTTP.
Неужели по другому никак? Зачем тогда предоставлен сервис SOAP?


Если не получается подписать через "стандартный" обработчик, то делаеться написание собственного Inerceptors, который "вживляет" ЭЦП туда куда надо.
30 сен 19, 14:41    [21982753]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
mad_nazgul, Это как раз то о чём я и пишу. То есть явным образом через JAXB собрать XML пакета без заголовка. Потом, по-сути, вручную вставить заголовок с подписью, переименовать некоторые теги и затем через HTTP всё это послать куда надо. Всё понятно, но геморойно. Хочется просто понять логику разработчиков СМЭВ, как они предлагают это делать. Может у них есть какой то хитромудрый способ?
30 сен 19, 14:55    [21982779]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn,
А ЕСИА у вас часть СМЭВ?
Так как у нас вся работа с госуслугами велась чере либу которую рекомеедовали сами госуслуги.
30 сен 19, 15:10    [21982808]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp, Нам надо через СМЭВ отправлять на ГИС ГМП информацию о платежах. СМЭВ предоставляет только адрес WSDL и схемы XSD. Всё. В результате генерации объектов имеем кучу объектов в спецификации JAXB, и собственно сервис с единственным методом. Как вызывается метод я уже писал в первом посте. Принцип формирования подписи описан. Он достаточно хитровымудренный, но понятный. Подпись должна записываться в заголовок SOAP пакета. Вот собственно второй день бьюсь пытаюсь понять как. То есть если руками формировать весь пакет то понятно как, но зачем тогда сам сервис делать?
30 сен 19, 15:35    [21982856]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn,
Думаю значит так коряво api сделано на той стороне. Вы нипричем.
Халявщики они.
Нам было проще с госуслугами.
30 сен 19, 15:40    [21982865]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp, Задолбала эта постоянная борьба с государственными IT сервисами....
30 сен 19, 15:58    [21982900]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
chpasha
Member

Откуда:
Сообщений: 8446
sergnn
gisgmpTransferMsg у которого только два параметра message и messageData обёрнутые в Holder и никакого заголовка

т.е. один метод в зависимости от message делает кучу дел?

sergnn
С какого бока тут приделывать заголовок пакета не понимаю

обычно, как уже написали, через interceptor.

sergnn
но зачем тогда сам сервис делать?

возможно изначально они хотели сделать хорошо. т.е. много разных методов, авторизация через хедеры. может еще и сделают. я так понял, что тебе хотелось бы, чтобы объект для аутентификации был частью метода?
30 сен 19, 15:59    [21982904]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
chpasha
т.е. один метод в зависимости от message делает кучу дел?


Да. Только message там универсальный, а вот messageData может быть самым разным. Это, типа универсальный способ обмена информацией между разными государственными и муниципальными организациями.
Организация определённым образом регистрирует на СМЭВ свой формат данных messageData и можно, вроде как пользоваться.

chpasha
возможно изначально они хотели сделать хорошо. т.е. много разных методов, авторизация через хедеры. может еще и сделают. я так понял, что тебе хотелось бы, чтобы объект для аутентификации был частью метода?


Вот это всё и приводит в уныние. Вроде как есть предоставленный унифицированный SOAP метод, а приходится лопатить на уровне HTTP запросов и парсить XML. Бред какой то.
Или всё таки есть какой то жутко секретный способ....
Что самое интересное объекты для создания самой подписи есть. Но как их вставить в пакет непонятно.
30 сен 19, 16:11    [21982921]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn,
Ну им проще написать один метод. Вот и сделали.
Пишите в тех поддержку. Вы же официалы.
Нам все разжевали и ссылки дали.
Удачи!
30 сен 19, 16:14    [21982924]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
chpasha, Я тут параллельно бросил клич на bankir.ru. Там есть техническая ветка и СМЭВ там обсуждается довольно активно, но за полдня просмотров куча, ответов ноль.
30 сен 19, 16:17    [21982927]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp, Ну да, так наверно и придётся.
30 сен 19, 16:19    [21982936]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
chpasha
Member

Откуда:
Сообщений: 8446
sergnn
Вроде как есть предоставленный унифицированный SOAP метод, а приходится лопатить на уровне HTTP запросов и парсить XML

ну чисто архитектурно - это правильно, что данные для аутентификации отделены от payload - это позволяет делегировать проверку другому классу/сущности. представь, что методов 30 и в каждом по объекту Auth. Возможно по-этому.
30 сен 19, 16:25    [21982948]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
chpasha
sergnn
Вроде как есть предоставленный унифицированный SOAP метод, а приходится лопатить на уровне HTTP запросов и парсить XML

ну чисто архитектурно - это правильно, что данные для аутентификации отделены от payload - это позволяет делегировать проверку другому классу/сущности. представь, что методов 30 и в каждом по объекту Auth. Возможно по-этому.
а про SOLID почему не упомянул?
Понятно теперь кто строит такое API
SendMessage(pointer)
30 сен 19, 16:33    [21982958]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
chpasha, архитектурно оно понятно, но в данном случае предоставленный метод получает заполненные объекты, делает из них XML и сразу передаёт на сервер в SOAP пакете. В какой момент ему подсунуть заголовок с подписью?
30 сен 19, 16:34    [21982959]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
chpasha
Member

Откуда:
Сообщений: 8446
PetroNotC Sharp
а про SOLID почему не упомянул?

это и есть SOLID

PetroNotC Sharp
SendMessage(pointer)

Цветочный магазин

sergnn
В какой момент ему подсунуть заголовок с подписью?

видимо зависит от библиотеки, которую юзаешь. в spring-ws это уже упомянутый тут interceptor. он выстреливает после того, как Soap сформировано, до отправки.
30 сен 19, 17:04    [21983000]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
SpringMan
Member

Откуда:
Сообщений: 9
Для второго смэва добрый человек один сделал таким образом - вполне работающий вариант. Для третьего смэва скорее всего алгоритмы надо будет подркучивать нужные - не проверял это.
30 сен 19, 17:18    [21983017]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
chpasha
Цветочный магазин
а я думал, по чему тебя нет в той теме). Понятно. Там щеки не принято надувать.
Продолжай.скажешь Цветочный магазин 1456 раз.
30 сен 19, 17:59    [21983057]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4839
sergnn
mad_nazgul, Это как раз то о чём я и пишу. То есть явным образом через JAXB собрать XML пакета без заголовка. Потом, по-сути, вручную вставить заголовок с подписью, переименовать некоторые теги и затем через HTTP всё это послать куда надо. Всё понятно, но геморойно. Хочется просто понять логику разработчиков СМЭВ, как они предлагают это делать. Может у них есть какой то хитромудрый способ?


Я работал не со СМЭВ, а с нашей гос. ESB.
Если для RSA, можно было просто подсунуть ЭЦП и она правильно подписывала XML, через стандартный клиент.
То с ГОСТом пришлось самому писать Interceptor, который внедрял ЭЦП.

Посмотрите, если у вас используется стандартный RSA, то возможно ничего делать не надо будет.
Через стандартный клиент все заработает.
1 окт 19, 05:41    [21983410]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
SpringMan
Для второго смэва добрый человек один сделал таким образом - вполне работающий вариант. Для третьего смэва скорее всего алгоритмы надо будет подркучивать нужные - не проверял это.


Спасибо. Теперь я понял всю глубину задницы в которую попал....
1 окт 19, 09:23    [21983450]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn
глубину задницы
отпишись что скажет техподдержка
1 окт 19, 10:28    [21983515]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
PetroNotC Sharp
отпишись что скажет техподдержка
Там не будет ничего простого: читать доки, работать с XML, крипто-API выбранного СКЗИ и всё-такое, что не укладывается в пару строчек, но при этом - почти никому не требуется.
1 окт 19, 13:48    [21983828]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
Basil A. Sidorov
PetroNotC Sharp
отпишись что скажет техподдержка
Там не будет ничего простого: читать доки, работать с XML, крипто-API выбранного СКЗИ и всё-такое, что не укладывается в пару строчек, но при этом - почти никому не требуется.
а у нас было ПО ДРУГОМУ С ГОСУСЛУГИ.
1 окт 19, 13:52    [21983837]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
PetroNotC Sharp
а у нас было ПО ДРУГОМУ С ГОСУСЛУГИ.
И что - в пару строчек уложилось? Кому-нибудь, кроме вас, интересно?
1 окт 19, 17:23    [21984153]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
Basil A. Sidorov,
Ты че на всех кидаешься?
..
Я сказал ТС отписаться. Ты влез первый раз. Потом второй. Выпимши? Завязывай.
1 окт 19, 19:08    [21984294]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9418
PetroNotC Sharp
Ты че на всех кидаешься?
А вас самих не утомил мутный поток спама вместо технического обсуждения?
Когда лень обрезать цитату (это же думать надо, время тратить) и херачится цать строк, которые нафик никому не нужны, потом добавляется пара-тройка символов, без которых прекрасно можно обойтись, но зато "каждый высказался".
1 окт 19, 19:48    [21984326]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
Basil A. Sidorov,
Давно вы стали занудой?
21983041
1 окт 19, 20:05    [21984337]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp,
Собственно вариант нашёлся. К сервису прицепляется перехватчик
SmevGISGMPService_Service service = new SmevGISGMPService_Service(url); 

			service.setHandlerResolver(
		                new HandlerResolver() {
		                    @Override
		                    public List<Handler> getHandlerChain(PortInfo portInfo) {
		                        List<Handler> list = new ArrayList<Handler>();
		                        Handler handler = (new smevTest()).new SOAPHandlerClient();
		                        list.add(handler);
		                        return list;
		                    }
		                }
		        );


И в SOAPHandlerClient описывается, что нужно сделать с пакетом.

Геморойно, но другого путь похоже нет.
3 окт 19, 15:08    [21985946]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
sergnn
Геморойно, но другого путь похоже нет.
ОК, спс. Но и еще вариант ты не сказал, им техподдержку написать. Типо oiosaml либы для госуслуг. Удачи!
3 окт 19, 16:08    [21986006]     Ответить | Цитировать Сообщить модератору
 Re: Кто нибудь делал обмен сообщениями со СМЭВ?  [new]
sergnn
Member

Откуда: Нижний Новгород
Сообщений: 373
PetroNotC Sharp,

С поддержкой пока туго. Мы собственно не сами участники СМЭВ. А только ПО делаем для участника. А участник пока только обещает связь с техподдержкой. Так что кручусь пока сам.
3 окт 19, 16:25    [21986023]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Java Ответить