Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Цитата:Но с другой стороны если сертификата нет, ЭЦП не верна, скорее всего сервис бы послал меня, учитывая что по-моему мнению на стороне сервиса стоят верификации ЭЦП. Как я понимаю, того чего просили сервис не вернул, а прислал описание ошибки, то есть "послал". Цитата:Вообщем-то уже попробовал и с решеткой отправить запрос, собственно ничего не изменилось, а к чему она вообще? Решетка это разделитель в URI между "адресом страницы" и "ID в документе". Если части "адрес страницы" нет (стоит первая решетка или значение ури пустое), то используется текущий документ. Если части "ID в документе" нет, то есть решетка последняя или отсутствует, используется весь документ. Таким образом, если написать OGRN_1111 без решетки это будет считаться как адрес страницы, но OGRN_1111 это не валидный адрес, поэтому скорее всего будет либо исключение либо выберется пустая строка вместо содержимого тега с ID OGRN_1111. Если написать #OGRN_1111 это будет считаться как выбор содержимого ID OGRN_1111 в текущем документе (включая сам тег с ID, что нам и требуется). Опять же если такого ID нет в документе, то выберется пустая строка (в этом случае исключение бывает редко). Если в документе 2 одинаковых ID то будет либо исключение либо выберется первый из них. Делаем выводы по аналогии для другого значения: Если укажете ури http://eln.fss.ru/actor/mo/1025401011833 без решетки, то при проверке будет пытаться скачать страницу по адресу http://eln.fss.ru/actor/mo/1025401011833 целиком. Полагаю такого адреса нет и будет либо исключение или пустая строка. ID со значением http://eln.fss.ru/actor/mo/1025401011833 будет невалидный (из-за наличия двоеточия и слешей), поэтому ури #http://eln.fss.ru/actor/mo/1025401011833 скорее всего тоже выберет пустую строку. Как видите что так пустая строка, что так, ничего не изменилось. Это в свою очередь означает что сертификат не найден при проверке и невозможно проверить SignatureValue. Если SignatureValue не проверено, то положено прерывать проверку подписи. Поэтому надо придумать другое значение ID (валидное), а в ури поставить решетку первой перед значением ID другого элемента. Подробнее про валидность ID http://www.datypic.com/sc/xsd/t-xsd_ID.htmlЦитата:The type xsd:ID is used for an attribute that uniquely identifies an element in an XML document. An xsd:ID value must be an NCName. This means that it must start with a letter or underscore, and can only contain letters, digits, underscores, hyphens, and periods. xsd:ID carries several additional constraints: Their values must be unique within an XML instance, regardless of the attribute's name or its element name. A complex type cannot include more than one attribute of type xsd:ID, or any type derived from xsd:ID. xsd:ID attributes cannot have default or fixed values specified. По-русски (вольно): тип xsd:ID основан на типе NCName, это означает что значение должно начинаться с подчеркивания или буквы и может содержать только следующие символы: буквы, цифры, подчеркивания, дефисы, точки. Кроме того, на накладываются дополнительные ограничения: значение должно быть уникально в xml документе, другие типы не могут содержать 2 и более атрибута типа xsd:ID, любой тип основанный на xsd:ID не может иметь значения по умолчанию или фиксированного значения. Отредактировано пользователем 14 августа 2019 г. 10:02:24(UTC)
| Причина: Не указана
|