home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / msn / SOAP / WSTrust / passporttest.pyo (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  4.6 KB  |  110 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import sys
  5. from logging import getLogger
  6. log = getLogger('msn.soap.passporttest')
  7. from functools import wraps
  8. import msn.SOAP.WSTrust as ws
  9.  
  10. def RSTheader(un = 'digsby03@hotmail.com', password = 'urface'):
  11.     UUID = UUID
  12.     import uuid
  13.     auth = ws.ps.AuthInfo()
  14.     auth.set_attribute_Id('PPAuthInfo')
  15.     auth.HostingApp = str(UUID('{7108E71A-9926-4FCB-BCC9-9A9D3F32E423}'))
  16.     auth.BinaryVersion = 4
  17.     auth.UIVersion = 1
  18.     auth.Cookies = ''
  19.     auth.RequestParams = 'AQAAAAIAAABsYwQAAAAxMDMz'
  20.     sec = ws.secext.Security()
  21.     utok = ws.secext.UsernameToken()
  22.     sec.Any.append(utok)
  23.     utok.set_attribute_Id('user')
  24.     utok.Username = utok.new_Username(un)
  25.     utok.Any.append(ws.secext.Password(password))
  26.     return (auth, sec)
  27.  
  28.  
  29. def soapcall(locatorname, _name = None):
  30.     import msn.SOAP as msn
  31.     soap = getattr(msn.SOAP, locatorname)
  32.     locator = getattr(soap, '%sLocator' % locatorname)()
  33.     
  34.     def wrapper(f):
  35.         
  36.         def wrapper2(self, *a, **k):
  37.             name = None if _name is None else _name
  38.             log.debug('%s.%s(%s %s)', locatorname, name, ', '.join(map(str, a + ('',))), ', '.join((lambda .0: for i in .0:
  39. '%s=%s' % i)(k.items())))
  40.             port = getattr(locator, 'get%sPort' % name)(tracefile = sys.stdout)
  41.             request = getattr(soap, '%sMsg' % name)()
  42.             e = None
  43.             
  44.             try:
  45.                 do_request = f(self, request, *a, **k)
  46.             except Exception:
  47.                 e = None
  48.                 do_request = False
  49.  
  50.             if not do_request:
  51.                 _v = ('BadRequest', request, a, k, e)
  52.                 if e:
  53.                     import traceback
  54.                     traceback.print_stack()
  55.                     traceback.print_exc()
  56.                 
  57.                 log.debug('%s.%s failed: %r', locatorname, name, e)
  58.                 return None
  59.             
  60.             response = getattr(port, name)(request, soapheaders = RSTheader(self.username, self.password))
  61.             result = getattr(response, '%sResult' % name, None)
  62.             getattr(self, '%sSuccess' % name, (lambda : pass))(request, result, *a, **k)
  63.             return result
  64.  
  65.         wrapper2 = (None, None, None, None, wraps(f))(wrapper2)
  66.         return wrapper2
  67.  
  68.     return wrapper
  69.  
  70.  
  71. class TokenRequester(object):
  72.     
  73.     def __init__(self, un, password):
  74.         self.username = un
  75.         self.password = password
  76.  
  77.     
  78.     def RequestSecurityToken(self, req, address, id, uri = None):
  79.         rst = req
  80.         rst._attrs = {
  81.             'Id': 'RST' + str(id) }
  82.         rt = ws.wst.RequestTypeEnum('http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue')
  83.         rst.Any.append(rt)
  84.         at = ws.wsp.AppliesTo()
  85.         epr = ws.wsa.EndpointReference()
  86.         epr.Address = address
  87.         at.Any.append(epr)
  88.         rst.Any.append(at)
  89.         if uri is not None:
  90.             pr = ws.wsp.PolicyReference()
  91.             pr.set_attribute_URI(uri)
  92.             rst.Any.append(pr)
  93.         
  94.         return True
  95.  
  96.     RequestSecurityToken = soapcall('WSTrust')(RequestSecurityToken)
  97.     
  98.     def RequestSecurityTokenSuccess(self, req, resp, address, id, uri = None):
  99.         print 'zomgyey'
  100.         SoapWriter = SoapWriter
  101.         import ZSI
  102.         print SoapWriter(False).serialize(resp)
  103.  
  104.     
  105.     def RequestMultipleSecurityTokens(self, req):
  106.         pass
  107.  
  108.     RequestMultipleSecurityTokens = soapcall('WSTrust')(RequestMultipleSecurityTokens)
  109.  
  110.