Ошибка знака xmlsec1 - идентификатор

В узле SignInfo у меня есть

<ds:Reference URI="#Id-132">...

Это относится к узлу ниже:

<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-132">

Команда:

xmlsec1 --sign --output request-signed.xml --privkey-pem privatekey.pem raw_message.xml

У меня есть эта ошибка: func = xmlSecXPathDataExecute: file = xpath.c: line = 273: obj = неизвестно:subj=xmlXPtrEval: ошибка =5: сбой библиотечной функции libxml2:expr=xpointer(id('Id-132'))

1 ответ

Для подписи с идентификаторами необходимы ссылки --id-attr: параметр. Пример:

<ds:Reference URI="#Id-132">

<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-132">

Команда: xmlsec1 --sign --output request-signed.xml --privkey-pem privatekey.pem --id-attr:Id raw_message.xml

Дополнительная информация: https://snippets.aktagon.com/snippets/758-how-to-sign-xml-documents-using-xmldsig-xml-signature-

Другие вопросы по тегам