Перейти к содержанию

SoapService

soapservice. СМЭВ 2.

Приложение предназначено для оправки запросов в СМЭВ 2.

Начиная с версии 5.00 в приложение добавлена возможность работы soapservice одновременно с несколькими ИС МФЦ. Это можно рассматривать либо как один из шагов к централизации МФЦ, либо как шаг к более удобному администрированию данного модуля. В таком режиме модуль устанавливается в единственном экземпляре и одновременно работает с несколькими БД ИС МФЦ. Возможна работа с несколькими модулями signer, полее подробно это будет описано ниже. При переходе на версию 5.00 МФЦ исопльзующим классическую модель (1 ИС - 1 Soapservice) не должно потребоваться каких-либо дополнительных манипуляций помимо штатного обновления Soapservice

При использовании нескольких ИС МФЦ для работы с модулем потребуется аторизация, чтобы разграничить работу с запросами разных ИС.

Конфигурирвоание SoapService

Конфигурация представляет собой xml-файл. Пример для одной ИС МФЦ (класический):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Config>
    <MfcList>
        <MfcConfig>
            <Id>Идентификатор МФЦ. Должен быть равен настройке "Внутренний идентификатор МФЦ для модуля СМЭВ 3"</Id>
            <Name>Назваине МФЦ (в произвольной форме, ни в какие отчеты не попадает)</Name>
            <Database>
                <Host>хост БД</Host>
                <Port>порт БД</Port>
                <Name>название БД</Name>
                <User>пользователь БД</User>
                <Password>пароль БД</Password>
            </Database>
            <MaxCountThread>максимальное число потоков на отправку</MaxCountThread>            
        </MfcConfig>
    </MfcList>
    <HttpPort>http порт на котором будетработаь приложение</HttpPort>
    <MaxIgnoredErrors>лимит счетчика ошибок отправки запроса</MaxIgnoredErrors>
    <Signer>
        <Address>
            <Address>адрес signer</Address>
            <User>пользователь signer</User>
            <Password>пароль signer</Password>
        </Address>
        <Alias>название контейнера ключей для технологической ЭЦП</Alias>
        <RrAlias>название контейнера ключей для ЭЦП запросов в Росреестр</RrAlias>
        <PepAlias>название контейнера ключей для ЭЦП зпросов создания УЗ ЕСИА</PepAlias>
    </Signer>
    <Autostart>признак автоматической отправки запросов по таймеру</Autostart>
    <NoCheckHttpsCert>признак игнорирования проверок сретификатов в https-запросах</NoCheckHttpsCert>
</Config>

Пример для работы с несоклькими ИС МФЦ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Config>
    <MfcList>
        <MfcConfig>
            <Id>Идентификатор МФЦ. Должен быть равен настройке "Внутренний идентификатор МФЦ для модуля СМЭВ 3"</Id>
            <Name>Назваине МФЦ (в произвольной форме, ни в какие отчеты не попадает)</Name>
            <Database>
                <Host>хост БД</Host>
                <Port>порт БД</Port>
                <Name>название БД</Name>
                <User>пользователь БД</User>
                <Password>пароль БД</Password>
            </Database>
            <Signer> <!-- перетирает настройки общего блока Signer -->
                <Address>
                    <Address>адрес signer</Address>
                    <User>пользователь signer</User>
                    <Password>пароль signer</Password>
                </Address>
                <Alias>название контейнера ключей для технологической ЭЦП</Alias>
                <RrAlias>название контейнера ключей для ЭЦП запросов в Росреестр</RrAlias>
                <PepAlias>название контейнера ключей для ЭЦП зпросов создания УЗ ЕСИА</PepAlias>
            </Signer>
            <MaxCountThread>максимальное число потоков на отправку</MaxCountThread>
            <ApiUser>пользователь авторизации API зарпосов из ИС МФЦ (так же настраивается в настройках ИС)</ApiUser>
            <ApiPassword>пользователь авторизации API зарпосов из ИС МФЦ (так же настраивается в настройках ИС)</ApiPassword>
        </MfcConfig>
        <MfcConfig>
            <Id>Идентификатор МФЦ. Должен быть равен настройке "Внутренний идентификатор МФЦ для модуля СМЭВ 3"</Id>
                        <Name>Назваине МФЦ (в произвольной форме, ни в какие отчеты не попадает)</Name>
                        <Database>
                            <Host>хост БД</Host>
                            <Port>порт БД</Port>
                            <Name>название БД</Name>
                            <User>пользователь БД</User>
                            <Password>пароль БД</Password>
                        </Database>
                        <MaxCountThread>максимальное число потоков на отправку</MaxCountThread>
        </MfcConfig>        
    </MfcList>
    <HttpPort>http порт на котором будетработаь приложение</HttpPort>
        <MaxIgnoredErrors>лимит счетчика ошибок отправки запроса</MaxIgnoredErrors>
        <Signer>
            <Address>
                <Address>адрес signer</Address>
                <User>пользователь signer</User>
                <Password>пароль signer</Password>
            </Address>
            <Alias>название контейнера ключей для технологической ЭЦП</Alias>
            <RrAlias>название контейнера ключей для ЭЦП запросов в Росреестр</RrAlias>
            <PepAlias>название контейнера ключей для ЭЦП зпросов создания УЗ ЕСИА</PepAlias>
        </Signer>
        <Autostart>признак автоматической отправки запросов по таймеру</Autostart>
    <SuperUserPassword>пароль супер пользователя, который сможет просматривать историю запросов всех ИС МФЦ</SuperUserPassword>
</Config>

Если в блоке MfcConfig указать блок Signer, то его настройки будут более приоритетными при исопльзовании каждого из указанных конейнеров ключей для ЭЦП. То есть если в этом блоке указать только адрес модуля Signer и блок PepAlias, то этот Signer будет использоваться только для подписания запросов к сервисам ЕСИА. Все остальные ЭЦП будут формироваться корневым модулем Signer.

Конфигурационный файл описан и валидилируется следующей xsd-схемой:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Config" type="ConfigType">
        <xs:annotation>
            <xs:documentation>Служебный загловок СМЭВ</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="ConfigType">
        <xs:sequence>
            <xs:element name="MfcList" type="MfcConfigsType" />
            <xs:element name="HttpPort" type="xs:integer" />
            <xs:element name="MaxIgnoredErrors" type="xs:integer" />
            <xs:element name="Signer" type="HubSignerConfigType" />
            <xs:element name="Autostart" type="xs:boolean" />
            <xs:element name="Proxy" type="ProxyType" minOccurs="0" />
            <xs:element name="NoCheckHttpsCert" type="xs:boolean" />
            <xs:element name="SuperUserPassword" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DbConfigType">
        <xs:sequence>
            <xs:element name="Host" type="xs:string"/>
            <xs:element name="Port" type="xs:integer"/>
            <xs:element name="Name" type="xs:string"/>
            <xs:element name="User" type="xs:string"/>
            <xs:element name="Password" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MfcConfigsType">
        <xs:sequence>
            <xs:element name="MfcConfig" type="MfcConfigType" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MfcConfigType">
        <xs:sequence>
            <xs:element name="Id" type="xs:string" />
            <xs:element name="Name" type="xs:string" />
            <xs:element name="Database" type="DbConfigType" />
            <xs:element name="Signer" type="MfcSignerConfigType" minOccurs="0" />
            <xs:element name="MaxCountThread" type="xs:integer" />
            <xs:element name="ApiUser" type="xs:string" minOccurs="0" />
            <xs:element name="ApiPassword" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="HubSignerConfigType">
        <xs:sequence>
            <xs:element name="Address" type="SignerConnectionConfigType" />
            <xs:element name="Alias" type="xs:string" />
            <xs:element name="RrAlias" type="xs:string" minOccurs="0" />
            <xs:element name="PepAlias" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MfcSignerConfigType">
        <xs:sequence>
            <xs:element name="Address" type="SignerConnectionConfigType" />
            <xs:element name="Alias" type="xs:string" minOccurs="0" />
            <xs:element name="RrAlias" type="xs:string" minOccurs="0" />
            <xs:element name="PepAlias" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SignerConnectionConfigType">
        <xs:sequence>
            <xs:element name="Address" type="xs:string" />
            <xs:element name="User" type="xs:string" />
            <xs:element name="Password" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ProxyType">
        <xs:sequence>
            <xs:element name="Host" type="xs:string" />
            <xs:element name="Port" type="xs:integer" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Установка

  • Распаковать архив
  • Запустить из папки с дистрибутивом soapservice.bat или soapservice.sh в зависимости от вашей ОС Обновление выполняется так же: распаковка и перезапуск

Установка модуля СМЭВ 2 как службы windows (необязательно)

  • Распаковать архив http://azovkomeks.ru/update/smev2-service.zip в отдельную папку
  • В файле smev2-service.xml все пути исправить на ваши
  • Выполнить команду smev2-service.exe install с правами администратора.

Служба установлена.

Установка модуля СМЭВ 2 как службы systemd (linux) (необязательно)

  • Создать в папке /etc/systemd/system файл soapservice.service следующего осдержания (пути и пользователей заменить на свои):
[Unit]
Description=Soapservice
After=syslog.target

[Service]
PIDFile=/opt/soapservice/pid
WorkingDirectory=/opt/soapservice
SyslogIdentifier=Soapservice
ExecStart=/opt/soapservice/soapservice.sh
User=user
Group=user

[Install]
WantedBy=multi-user.target
  • Выполнить команду systemctl daemon-reload
  • Выполнить команду systemctl enable soapservice.service

Готово

Зависимости

  • signer2
  • doc-transformer