У меня проблема с генерацией заголовка безопасности gSOAP (WSSE). Я скомпилировал все необходимые файлы и использовал следующие вызовы для добавления заголовка безопасности WSSE к запросу:
soap_wsse_add_Security(proxy.soap);
soap_wsse_add_UsernameTokenText(proxy.soap, "UsernameToken-1", "user","passwd");
Мой заголовок безопасности выглядит так:
<SOAP-ENV:Header>
<wsse:Security SOAP-ENV:mustUnderstand="true">
<wsse:UsernameToken wsu:Id="UsernameToken-1">
<wsse:Username>testuser</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
testPassword</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
По сравнению со спецификацией сервера, которую я предоставил, строка
<wsse:Security SOAP-ENV:mustUnderstand="true">
отсутствует xmlns: wsse = "http ...."
и линия
<wsse:UsernameToken wsu:Id="UsernameToken-1">
отсутствует часть xmlns: wsu = "http ...." .
Поэтому я хочу, чтобы это выглядело так:
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="true">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1">
Как добавить части xmlns: wsse и xmlns: wsu к конкретным строкам, чтобы они соответствовали спецификации? Ошибка, которую я получаю от сервиса:
com.ctc.wstx.exc.WstxParsingException: Undeclared namespace
prefix "wsse"
Я посмотрел документацию по gSOAP, но все, что я смог найти, это как добавить заголовок, а не как добавить определения пространства имен к элементам в заголовке.
Помощь будет оценена.