When I try to authenticate my cmdbuild webservice(with the account)using suds modules of python, I got a "suds.WebFault" error requests. I checked the account password is corrected.
Now,the problem is that it responses 'The security token could not be authenticated or authorized'', and I do not know how to authorize using security?
I need simple implementation based python, can you help me?
Here is my codes .
Code based python (in linux_centos6.3 64):
#! /usr/bin/python
# -*- coding:utf-8 -*-
import logging
import datetime
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
from suds.client import Client
from suds.plugin import *
from suds.wsse import *
from suds import WebFault
url = "
http://http://10.200.190.2:8080/services/soap/Webservices?wsdl"
client = Client(url)
security = Security()
token = UsernameToken('xuezhe.zhang', 'mypwd')
security.tokens.append(token)
client.set_options(wsse=security)
print client.service.getCardList('Building')
# -*- coding:utf-8 -*-
import logging
import datetime
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
from suds.client import Client
from suds.plugin import *
from suds.wsse import *
from suds import WebFault
url = "
client = Client(url)
security = Security()
token = UsernameToken('xuezhe.zhang', 'mypwd')
security.tokens.append(token)
client.set_options(wsse=security)
print client.service.getCardList('Building')
The responses:
<soap:Envelope xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode xmlns:ns1="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">ns1:FailedAuthentication</faultcode><faultstring>The security token could not be authenticated or authorized</faultstring></soap:Fault></soap:Body></soap:Envelope>
Traceback (most recent call last):
File "cmdb_webservice2.py", line 20, in <module>
print client.service.getCardList('Building')
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 602, in invoke
result = self.send(soapenv)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 649, in send
result = self.failed(binding, e)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 702, in failed
r, p = binding.get_fault(reply)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/bindings/binding.py", line 265, in get_fault
raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'The security token could not be authenticated or authorized'
Traceback (most recent call last):
File "cmdb_webservice2.py", line 20, in <module>
print client.service.getCardList('Building')
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 602, in invoke
result = self.send(soapenv)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 649, in send
result = self.failed(binding, e)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/client.py", line 702, in failed
r, p = binding.get_fault(reply)
File "/usr/lib/python2.6/site-packages/suds-0.4-py2.6.egg/suds/bindings/binding.py", line 265, in get_fault
raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'The security token could not be authenticated or authorized'
Kind regards!
yanqu.wu