0

デフォルトの SOAP ユーザー名トークンには、次の要素があります。

 <wsse:UsernameToken>
        <wsse:Username>USERNAME</wsse:Username>
        <wsse:Password>PASSWORD</wsse:Password>
 </wsse:UsernameToken>

同じように、ドメインと組織などの追加のトークンが必要です。スキーマは次のようになります。

 <wsse:UsernameToken>
        <wsse:Username>USERNAME</wsse:Username>
        <wsse:Password>PASSWORD</wsse:Password>
        <Organization>ORGANIZATION</Organization>
        <Domain>DOMAIN</Domain>
 </wsse:UsernameToken>

Element タグを使用して、要素を追加しました。

wsse = ('wsse', 'http://schemas.xmlsoap.org/ws/2002/12/secext')
security = Element('Security', ns=wsse)

usernametoken = Element('UsernameToken', ns=wsse)

usernametoken.insert(Element('Username', ns=wsse).setText('USERNAME'))
usernametoken.insert(Element('Password', ns=wsse).setText('PASSWORD'))
usernametoken.insert(Element('Organization').setText('ORGANIZATION'))
usernametoken.insert(Element('Domain').setText('DEFAULT'))

security.insert(usernametoken)

今、同じオプションを設定しようとすると:

client.set_options(wsse=security)

次のエラーが表示されます。

AttributeError: "wsse" must be: (<class suds.wsse.Security at 0xf552c0>,)

トークン クラスのタイプが変更されているようです... 何か不足していますか?

ありがとう

4

1 に答える 1

2

理解した。

クライアント設定オプションは、wsse ではなく、soapheader にする必要があります。コードは次のとおりです。

client.set_options(soapheaders=security)
于 2015-12-15T07:47:23.343 に答える