我在生成gSOAP安全性头(WSSE)时遇到问题。我编写所有必要的文件,并使用下面的调用到WSSE安全头添加到请求:gSOAP WSSE头缺少xmlns名称空间声明
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的文档,但所有我能找到的是如何增加一个头,就如何命名空间定义添加到标题中的项目什么都没有。
援助将不胜感激。
你能告诉我你是怎么添加安全性头代理对象?我假设你的上面的代理变量是DeviceBindingProxy类型,但我在DeviceBindingProxy类中看不到任何这样的字段。 – mualloc