Skip to content

Instantly share code, notes, and snippets.

@hemulin
Created April 27, 2013 15:03
Show Gist options
  • Save hemulin/5473410 to your computer and use it in GitHub Desktop.
Save hemulin/5473410 to your computer and use it in GitHub Desktop.
import sys, httplib, logging, MySQLdb as mdb
from xml.etree.ElementTree import Element, SubElement, tostring, fromstring
from xml.etree import ElementTree
from suds.client import Client
from suds.wsse import *
from suds.sax.attribute import Attribute
from xml.dom.minidom import parseString as minidomParse
def main():
# Logging
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.clent').setLevel(logging.DEBUG)
logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
logging.getLogger('suds.wsse').setLevel(logging.DEBUG)
# INITIAL VARIABLES
env = 'apitest' #TODO: change to api when going to prod.
WSDL_URL = 'http://' + env + '.jasperwireless.com/ws/schema/Terminal.wsdl'
userName = 'myUserName'
password = 'myPassword'
licenseKey = 'myLicenseKey'
iccids = ('iccid1', 'iccid2')
client = Client(WSDL_URL)
securityE = setSecurityHeaders(userName, password)
client.set_options(soapheaders=securityE)
response = client.service.GetTerminalDetails('message-1', '1.0', licenseKey, iccids)
print response
def setSecurityHeaders(username, password):
security = Security()
token = UsernameToken(username, password)
security.tokens.append(token)
securityE = security.xml()
uid = Attribute("wsu:Id", "UsernameToken-16847597")
usernameTokenE = securityE.getChildren()[0]
usernameTokenE.addPrefix("wsu", r"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd")
usernameTokenE.append(uid)
passwordE = usernameTokenE.getChildren()[1]
passwordE.append(Attribute("Type", r"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"))
# print minidomParse(securityE.plain()).toprettyxml()
return securityE
if __name__ == '__main__':
main()
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment