home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- import sys
- from logging import getLogger
- log = getLogger('msn.soap.passporttest')
- from functools import wraps
- import msn.SOAP.WSTrust as ws
-
- def RSTheader(un = 'digsby03@hotmail.com', password = 'urface'):
- UUID = UUID
- import uuid
- auth = ws.ps.AuthInfo()
- auth.set_attribute_Id('PPAuthInfo')
- auth.HostingApp = str(UUID('{7108E71A-9926-4FCB-BCC9-9A9D3F32E423}'))
- auth.BinaryVersion = 4
- auth.UIVersion = 1
- auth.Cookies = ''
- auth.RequestParams = 'AQAAAAIAAABsYwQAAAAxMDMz'
- sec = ws.secext.Security()
- utok = ws.secext.UsernameToken()
- sec.Any.append(utok)
- utok.set_attribute_Id('user')
- utok.Username = utok.new_Username(un)
- utok.Any.append(ws.secext.Password(password))
- return (auth, sec)
-
-
- def soapcall(locatorname, _name = None):
- import msn.SOAP as msn
- soap = getattr(msn.SOAP, locatorname)
- locator = getattr(soap, '%sLocator' % locatorname)()
-
- def wrapper(f):
-
- def wrapper2(self, *a, **k):
- name = None if _name is None else _name
- log.debug('%s.%s(%s %s)', locatorname, name, ', '.join(map(str, a + ('',))), ', '.join((lambda .0: for i in .0:
- '%s=%s' % i)(k.items())))
- port = getattr(locator, 'get%sPort' % name)(tracefile = sys.stdout)
- request = getattr(soap, '%sMsg' % name)()
- e = None
-
- try:
- do_request = f(self, request, *a, **k)
- except Exception:
- e = None
- do_request = False
-
- if not do_request:
- _v = ('BadRequest', request, a, k, e)
- if e:
- import traceback
- traceback.print_stack()
- traceback.print_exc()
-
- log.debug('%s.%s failed: %r', locatorname, name, e)
- return None
-
- response = getattr(port, name)(request, soapheaders = RSTheader(self.username, self.password))
- result = getattr(response, '%sResult' % name, None)
- getattr(self, '%sSuccess' % name, (lambda : pass))(request, result, *a, **k)
- return result
-
- wrapper2 = (None, None, None, None, wraps(f))(wrapper2)
- return wrapper2
-
- return wrapper
-
-
- class TokenRequester(object):
-
- def __init__(self, un, password):
- self.username = un
- self.password = password
-
-
- def RequestSecurityToken(self, req, address, id, uri = None):
- rst = req
- rst._attrs = {
- 'Id': 'RST' + str(id) }
- rt = ws.wst.RequestTypeEnum('http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue')
- rst.Any.append(rt)
- at = ws.wsp.AppliesTo()
- epr = ws.wsa.EndpointReference()
- epr.Address = address
- at.Any.append(epr)
- rst.Any.append(at)
- if uri is not None:
- pr = ws.wsp.PolicyReference()
- pr.set_attribute_URI(uri)
- rst.Any.append(pr)
-
- return True
-
- RequestSecurityToken = soapcall('WSTrust')(RequestSecurityToken)
-
- def RequestSecurityTokenSuccess(self, req, resp, address, id, uri = None):
- print 'zomgyey'
- SoapWriter = SoapWriter
- import ZSI
- print SoapWriter(False).serialize(resp)
-
-
- def RequestMultipleSecurityTokens(self, req):
- pass
-
- RequestMultipleSecurityTokens = soapcall('WSTrust')(RequestMultipleSecurityTokens)
-
-