Подписание блока в XML
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2

ТЕМА: Подписание блока в XML

Подписание блока в XML 11 мес., 2 нед. назад #4486

  • worker
  • Новый участник
  • Постов: 10
  • Репутация: 0
Здравствуйте!
Можете ли вы подсказать, как правильно указывать tbsElementXPath и signatureParentElementXPath в методе signXml.
Если я указываю не правильный путь, выдает ошибку.
Если правильный, то: "Указанный для подписи элемент /ArrayOfOBK_Tasks не найден"

<ArrayOfOBK_Tasks xmlns:i=" www.w3.org/2001/XMLSchema-instance" xmlns=" schemas.datacontract.org/2004/07/PW.Ncel....DataModel">
<OBK_Tasks><AcceptRCDate i:nil="true" />
<AcceptToCoz>false</AcceptToCoz><ActReceptionId>2458548</ActReceptionId><AssessmentDeclarationId>15484254</AssessmentDeclarationId><CozExecutorId i:nil="true" />
<Employee i:nil="true" />
<ExecutorId i:nil="true" />
<Id>a7d7a1fb-5e76-46d2-9b6c-e7a1049c03bd</Id><IsSigned>false</IsSigned><OBK_ActReception i:nil="true" />
<OBK_AssessmentDeclaration i:nil="true" />
<OBK_TaskExecutor />
<OBK_TaskMaterial />
<Test>
<Id>215487548</Id><IsSigned>false</IsSigned><OBK_ActReception i:nil="true" />
</Test>
<OBK_TaskStatus />
<RegisterDate>22.05.2018</RegisterDate><SendToCoz>false</SendToCoz><SendToIC i:nil="true" />
<SendToLabDate i:nil="true" />
<TaskEndDate i:nil="true" />
<TaskNumber>2018000130/1</TaskNumber><TaskStatusId i:nil="true" />
<Unit i:nil="true" />
<UnitId>6457945485</UnitId></OBK_Tasks>
<sign>
</sign>
</ArrayOfOBK_Tasks>

Вложение XMLPath.png - не найдено



Вложение XMPTest.xml - не найдено

Изменено: 11 мес., 2 нед. назад от worker.

Re: Подписание блока в XML 11 мес., 2 нед. назад #4487

  • Rustem2016
  • Давно я тут
  • Постов: 93
  • Репутация: 5
Изменено: 11 мес., 2 нед. назад от Rustem2016.

Re: Подписание блока в XML 11 мес., 2 нед. назад #4488

  • worker
  • Новый участник
  • Постов: 10
  • Репутация: 0
Rustem2016 написал:


По указанной вами ссылке я решения не нашел.
В том XML документе, что я вам скинул вы можете сказать, какой путь XMLPath я должен указать при подписи, например для блока <Test>.
Потому, что я точно могу определить этот путь, но ваш метод говорит, что данный путь не найден.

Re: Подписание блока в XML 11 мес., 2 нед. назад #4489

  • Rustem2016
  • Давно я тут
  • Постов: 93
  • Репутация: 5
Блоку Test должен быть присвоен идентификатор в виде атрибута например <Test Id="TestBlock"> и cсформировать сообщение в NCALayer, например:
    var signXml = {
		"module": "kz.gov.pki.knca.commonUtils",
        "method": "signXml",
        "args": [storageName, keyType, xmlToSign, "//*[@Id='TestBlock']", "//*[local-name()='Header']"] 
    };

Re: Подписание блока в XML 11 мес., 2 нед. назад #4491

  • worker
  • Новый участник
  • Постов: 10
  • Репутация: 0
Rustem2016 написал:
Блоку Test должен быть присвоен идентификатор в виде атрибута например <Test Id="TestBlock"> и cсформировать сообщение в NCALayer, например:
    var signXml = {
		"module": "kz.gov.pki.knca.commonUtils",
        "method": "signXml",
        "args": [storageName, keyType, xmlToSign, "//*[@Id='TestBlock']", "//*[local-name()='Header']"] 
    };


Попробовал ваш вариант (в разных вариациях) и проблема не решилась.
Причем, если я правильно понимаю, то у вас используется кастомный метод поиска элемента XML.
При указании
id - Указанный для подписи элемент не содержит атрибут 'Id' (а если мне нужно указать свой атрибут, как быть? Это не подходит под специфику XMLPath),
Id - Указанный для подписи элемент //*[@Id='TestBlock'] не найден (хотя он есть и ваш шаблон "//*[@Id='TestBlock']" в действительности работает, но не в NCALayer-е)
Что еще вы можете предложить?

Re: Подписание блока в XML 11 мес., 2 нед. назад #4492

  • Rustem2016
  • Давно я тут
  • Постов: 93
  • Репутация: 5
Я привел свой пример, он сработал в NCALayer - <SOAP-ENV:Envelope xmlns:SOAP-ENV=" schemas.xmlsoap.org/soap/envelope/" xmlns:cab=" www.test.kz"><SOAP-ENV:Header/><SOAP-ENV:Body id="Body"><cab:Data><ROOT><getData><Reference>OTcxZWY1MTlhY2NjMDM0ZGI2MDBjZGM4ZDIxYzJjZTkyOTBjMGZhMGRkNDMxMzE0NzNiM2Y4NDM1ZmQwMDcwZg==</Reference></getData></ROOT></cab:Data></SOAP-ENV:Body></SOAP-ENV:Envelope>

Возможно имеет смысл пересмотреть конструкцию Вашего XML?
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba