4
我瞭解如何向SOAP請求添加標頭。但是,這會產生一個與我需要傳遞的不匹配的標題。返回此標題:將名稱空間添加到Suds中的默認WSSE安全對象
<SOAP-ENV:Header>
<wsse:Security mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>CABLE</wsse:Username>
<wsse:Password>CABLE</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
不過,我需要修改頭的命名空間通過特定的命名空間的安全對象和UsernameToken的對象。我似乎無法弄清楚如何覆蓋提供的默認值。
<soapenv:Header>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
http://schemas.xmlsoap.org/ws/2002/07/secext
<wsse:UsernameToken xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">
<wsse:Username>CABLE</wsse:Username>
<wsse:Password Type="wsse:PasswordText">CABLE</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
這裏是Python代碼,以生成上述
security = Security()
token = UsernameToken('CABLE', 'CABLE')
security.tokens.append(token)
client.set_options(wsse=security)
謝謝!它還解決了我在密碼元素上使用suds wsse支持和缺少類型屬性的問題(使用passwd.set('Type',「http://docs.oasis-open.org/wss/2004/01/oasis-200401 -wss-username-token-profile-1.0#PasswordText「)來設置屬性。 – sunew