[Fedora-suds-list] Need Help with suds.wsse.Security to attach security token to the soap header
Sankumani Sarma
ssarma at liquidnet.com
Fri Apr 13 15:00:47 UTC 2012
I am developing a webservice client, which need to first get a security token from the service to invoke the next ServiceAvailabilityCheck() service.
Successfully got the following security token from the webservice.
(RequestedSecurityTokenType){
Assertion =
(Assertion){
_Version = "2.0"
_IssueInstant = "2012-04-12T18:13:29.948Z"
_ID = "saml-1334254409948"
Issuer = "com.jpmc.morcom.pathway.sts"
Subject =
(Subject){
NameID = "LQSCEAPC"
SubjectConfirmation =
(SubjectConfirmation){
_Method = "urn oasis:names:tc SAML:2.0:cm:bearer"
}
}
Conditions =
(Conditions){
_NotOnOrAfter = "2012-04-13T05:13:29.000Z"
_NotBefore = "2012-04-12T18:13:29.948Z"
}
AuthnStatement =
(AuthnStatement){
_AuthnInstant = "2012-04-12T18:13:29.948Z"
AuthnContext =
(AuthnContext){
AuthnContextDecl = "AuthenticationMethod="urn:oasis:names:tc:SAML:2.0:am:password""
}
}
AttributeStatement =
(AttributeStatement){
Attribute =
(Attribute){
_Name = "scToken"
AttributeValue = "AAAAAgABAGgZTFPtW4euBwB63wAdaFYmic81bDHDWpwQ2kmQYeh..cP4tEAXAQE31CS24tltmBzkm406IyKG4e0qLI9hHRthxHHq0pDZNJxR9zqv0jDgm6VOtAYUx6WHt2D6ULUZu6wVhMsT54TqVA__!!57P89XlXgJqBySvo7B2MTCK4lmzPn6Oqn78kAeJiMwS2aRwqUxyEjoazKz.m8Xxlw2WUTbITcESwxN.dvNnfvQGD4kudgMZ5IatTcW9hTir36jEphw41F8zRmRXtUQ7PkJR9yw__"
}
}
}
}
Now the problem is how to set that security token in the soap header while invoking the ServiceAvailabilityCheck() service.
I have tried the following:
# getting an instance of the Security module
security =suds.wsse.Security()
# getting an instance of the Token module
token = suds.wsse.Token()
# setting the security token RequestedSecurityTokenType object received earlier
token.__setattr__('RequestedSecurityTokenType', requestedSecurityTokenType)
security.tokens.append(token)
# setting the client with the security header
client.set_options(wsse=security)
# calling the service now
serviceAvailibility = client_eap.service.ServiceAvailabilityCheck()
I am getting the following error:
File "build\bdist.win32\egg\suds\client.py", line 539, in __call__
return client.invoke(args, kwargs)
File "build\bdist.win32\egg\suds\client.py", line 592, in invoke
msg = binding.get_message(self.method, args, kwargs)
File "build\bdist.win32\egg\suds\bindings\binding.py", line 116, in get_message
File "build\bdist.win32\egg\suds\bindings\binding.py", line 338, in headercontent
File "build\bdist.win32\egg\suds\wsse.py", line 79, in xml
root.append(t.xml())
AttributeError: Token instance has no attribute 'xml'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/suds/attachments/20120413/1e2378eb/attachment.html>
More information about the suds
mailing list