Python Forum
need help in adding timestanp zeep wsse - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: need help in adding timestanp zeep wsse (/thread-13933.html)



need help in adding timestanp zeep wsse - sachingle - Nov-07-2018

Hi Guys,

I am working on code consume a SOAP web service using zeep client.
I need to pass wsse username token as well as Timestap to this webservice but i am not able add time stamp.

from datetime import datetime 
from datetime import timedelta   
from zeep import Client
from zeep.wsse import UsernameToken
#username_token=UsernameToken('username', 'Welcome.1')
#Timestamp_token=Timestamp(Created=datetime.now(),Expires=datetime.now()+timedelta(days=1))
url="https://ss/esswebservice?WSDL"
client = Client(url,wsse=[UsernameToken('shmadan', 'Welcome.1'),timestamp(Created=datetime.now(),Expires=datetime.now()+timedelta(days=1))])
result = client.service.submitInstantRecurringRequest(description='TestESS1',jobDefinitionId = {
    'name': 'BulkImportJob',
    'packageName': '/oracle/apps/ess/cdm/foundation/bulkImport/',
	'type': 'JOB_DEFINITION'
} ,iCalSchedule='FREQ=DAILY;INTERVAL=2;',application='CrmEss',requestedStartTime=datetime.now(),requestedEndTime=datetime.now()+timedelta(days=1), requestParameters={} )
print (result) ## shows the details of this service
Output:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Timestamp wsu:Id="TS-C2F459A7D74D7BCA9A15415793751764"> <wsu:Created>2018-11-07T08:29:35.176Z</wsu:Created> <wsu:Expires>2018-11-07T08:30:35.176Z</wsu:Expires> </wsu:Timestamp> <wsse:UsernameToken wsu:Id="UsernameToken-C2F459A7D74D7BCA9A15415793692663"> <wsse:Username>username</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Welcome.1</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">dCRbKR1kKJOfmrMS+IgKbw==</wsse:Nonce> <wsu:Created>2018-11-07T08:29:29.266Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>



RE: need help in adding timestanp zeep wsse - buran - Nov-07-2018

Do you have docs on the format expected (i.e. timestamp in particular)?


RE: need help in adding timestanp zeep wsse - sachingle - Nov-07-2018

Hi Buran,

following is the python code used but it gives "The security token is not valid." error
The webservice accepts Timestamp as part of the security tocken
I have searched zeep dicumentation but there is no mention of the wsse Timestamp token

from datetime import datetime
from datetime import timedelta
from zeep import Client
from zeep.wsse import UsernameToken
from lxml import etree
from zeep.wsse import utils
#username_token=UsernameToken('usernmae', 'Welcome.1')
#Timestamp_token=Timestamp(Created=datetime.now(),Expires=datetime.now()+timedelta(days=1))

url="/esswebservice?WSDL"
client = Client(url,wsse=UsernameToken('username', 'Welcome.1'))

result = client.service.submitInstantRecurringRequest(description='TestESS1',jobDefinitionId = {
'name': 'BulkImportJob',
'packageName': '/oracle/apps/ess/cdm/foundation/bulkImport/',
'type': 'JOB_DEFINITION'
} ,iCalSchedule='FREQ=DAILY;INTERVAL=2;',application='CrmEss',requestedStartTime=datetime.now(),requestedEndTime=datetime.now()+timedelta(days=1), requestParameters={} )
print (result) ## shows the details of this service


RE: need help in adding timestanp zeep wsse - buran - Nov-07-2018

Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you in your previous post.
See BBcode help for more info.

The time stamp format will be specified in the docs for the service, not the zeep client. e.g. it may require timestamp in UTC, in some predefined format, etc.