2016-05-28 11 views
4

コード:Pythonの泡のUsernameToken

security = Security() 
token = UsernameToken('b77a5c561934e089', 'kmfHkNZyn1U/pGAiY3+h0BoHdKI=') 
security.tokens.append(token) 
client.set_options(wsse=security) 

私の問題は、このいずれかになります。しかし、私は必要なのでこの要求に対する応答は

<SOAP-ENV:Header> 
     <wsse:Security mustUnderstand="true"> 
     <wsse:UsernameToken> 
      <wsse:Username>b77a5c561934e089</wsse:Username> 
      <wsse:Password>kmfHkNZyn1U/pGAiY3+h0BoHdKI=</wsse:Password> 
     </wsse:UsernameToken> 
     </wsse:Security> 
    </SOAP-ENV:Header> 

です:UsernameTokenのを含めたときに、私は、ヘッダーのこの種を受け取りますウェブサービス:

<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> 
    <wsp:Policy> 
    <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"> 
     <wsp:Policy> 
     <sp:WssUsernameToken10 /> 
     </wsp:Policy> 
    </sp:UsernameToken> 
    </wsp:Policy> 
</sp:SignedSupportingTokens> 

私はこれをsudsでどうやって行うことができますか?インターネット全体を検索しましたが、解決策を見つけられませんでした。

答えて

0

コードはSOAP汎用ソリューションです。あなたのWebサービスはカスタムレスポンスを必要とするようです。

認証が機能しないと思われますか?

marshallにお問い合わせください。classこのpluginでは、soap封筒を変更することができます。 独自の属性を追加できます。

class MyRequesterClass(object): 

    class _myServiceMarshalled(MessagePlugin): 

     def marshalled(self, context): 
      commons.set_service_common_header(context, "yourService") 

      body = context.envelope.getChild('Body') 
      service = body.getChild("childWhereYouWantAddYourCustomXML") 

      service.attributes.append(Attribute("sp:IncludeToken", "http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient")) 

      etc, etc 
関連する問題