def Receive(self, response, callback = None, **kw): '''Parse message, create Python object. KeyWord data: faults -- list of WSDL operation.fault typecodes wsaction -- If using WS-Address, must specify Action value we expect to receive. ''' # fault = None # try: # fault = self.ReceiveFault(response, **kw) # except TypeError: # pass # else: # return callback.error(FaultException(msg)) self.ReceiveSOAP(response, **kw) pname = self.ps.body_root.namespaceURI, self.ps.body_root.localName el_type = schema.GTD(*pname) if el_type is not None: tc = el_type(pname) else: tc = schema.GED(*pname) reply = self.ps.Parse(tc) if self.ps.body_root.localName == 'Fault': return callback.error(reply) reply_tc = getattr(reply, 'typecode', None) if reply_tc is None: log.warning("Unable to parse reply with tc=%r (got %r). Returning empty tc instance.", tc, reply) reply = tc headers_to_parse = [] for hdr in self.ps.header_elements: hdr_pname = (hdr.namespaceURI, hdr.localName) hdr_type = schema.GTD(*hdr_pname) if hdr_type is not None: hdr_tc = hdr_type(hdr_pname) else: hdr_tc = schema.GED(*hdr_pname) headers_to_parse.append(hdr_tc) headers = self.ps.ParseHeaderElements(headers_to_parse) reply.soapheaders = headers if self.address is not None: self.address.checkResponse(self.ps, kw.get('wsaction')) callback.success(reply)
def serviceHeaders(self, client, scenario = "Initial", **k): App = Schema.GED(MSNS.MSWS.STORAGE,"StorageApplicationHeader").pyclass() User = Schema.GED(MSNS.MSWS.STORAGE,"StorageUserHeader").pyclass() Affinity = Schema.GED(MSNS.MSWS.STORAGE,"AffinityCacheHeader").pyclass() App.ApplicationID = self.AppId App.Scenario = scenario User.Puid = 0 User.TicketToken = client.get_ticket(self.SSO_Domain).token self.add_cachekey(client, Affinity) return App, User, Affinity
def serviceHeaders(self, client, to = None, **k): To = Schema.GED(MSNS.HMNS.OIM, "To").pyclass() To.set_attribute_memberName(to) From = Schema.GED(MSNS.HMNS.OIM, "From").pyclass() From.set_attribute_memberName(client.self_buddy.name) From.set_attribute_proxy(client.ns.client_name) From.set_attribute_msnpVer(client.version) From.set_attribute_buildVer(client.ns.client_software_version) Ticket = Schema.GED(MSNS.HMNS.OIM, "Ticket").pyclass() Sequence = Schema.GED(NS.WSA.RM, "Sequence").pyclass() Sequence.Identifier = Sequence.new_Identifier('http://' + SsoDomains.Messenger) self.last_message_number = Sequence.MessageNumber = self.last_message_number + 1 return To, From, Ticket, Sequence
def serviceHeaders(self, client, *a, **k): ticket = client.get_ticket(SsoDomains.Contacts) auth = Schema.GED(MSNS.MSWS.SPACES, 'AuthTokenHeader').pyclass() auth.Token = ticket.token #auth.AuthPolicy = self.SSO_PolicyRef return auth,
def serviceHeaders(self, client, *a, **k): ticket = client.get_ticket(SsoDomains.Contacts) app = Schema.GED(MSNS.MSWS.ADDRESS,"ABApplicationHeader").pyclass() # tried using self.AppId for this but it failed for addressbook requests. app.ApplicationId = app.new_ApplicationId(str(AppIDs.Sharing).upper()) app.IsMigration = False app.PartnerScenario = getattr(PartnerScenario, k.get('PartnerScenario', 'Initial'), 'Initial') app.BrandId = getattr(ticket, "BrandId", 'MSFT') self.add_cachekey(client, app) auth = Schema.GED(MSNS.MSWS.ADDRESS,"ABAuthHeader").pyclass() auth.TicketToken = ticket.token auth.ManagedGroupRequest = False return app, auth
def serviceHeaders(self, client, to = None, **k): PC = Schema.GED(MSNS.HMNS.RSI, "PassportCookie").pyclass() ticket = client.get_ticket(self.SSO_Domain) token_parts = util.fmt_to_dict('&', '=')(ticket.token) PC.T = token_parts.get('t', '') PC.P = token_parts.get('p', '') return PC,
def __main(): import ZSI, ZSI.schema as schema data = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><AffinityCacheHeader xmlns="http://www.msn.com/webservices/storage/2008"><CacheKey>1p8CXNxj8mTbyfRy5cdbxUbNpOw5IAof_RjSy7XAotTIAs1eKcah9MQg</CacheKey></AffinityCacheHeader><StorageUserHeader xmlns="http://www.msn.com/webservices/storage/2008"><Puid>0</Puid><Cid>0</Cid><ApplicationId>0</ApplicationId><TicketToken>t=EwDoAW+jAAAUVwo8hY/Rg6HvEdmXr19KcNgO+7mAAA3oPdbFO1wSu82lRckR/LUL2fSAHbA7skahr3eq37BfYX1s7Dcj6PKkLco7bUKCEP9NPZGXeM5zLb6SgsnDwnrrgs6rjZrOAyz2Nf1Jg8tj0uDg4BzCtEm2lQi7P1LjGrHfvkD4bJKQTRW2Ot8W4zop6cCSPKjmKxH15v/cXqlkA2YAAAh2WM/FIDyMijgBvRY/ln+7e+GXZ+0dIb1AlHP47KUaEcX4HI1UgJMnKQ7Z2ybcWP19kthAYQLmc1QhCMfocKWTbniLzWO+H4EEwIf7VQGyGzgCsQ+L9Oz+oxad4A7WYOcmO58yIYEYETk7rYhRzPXYKbLM2fM/WVg6rrPC3LG/oyqMkbmQf6I0ebQxOPv/k7npSwpMnj4bMmMh/TjoA+4lSQrjx4iCT6ZJq9jmLRyRH5mlJ/ultaXCAFVttQ7dAEGYu7YuZOActLa5DyUYQ1/F/AK21k3VX+5YvTVvIXFE1ourC+YumAJlouczBvtGIy5DNvAwpCIXeqHDP6iYGQpID8cTiCf95Ctq3oK5pHmHSfCPi+wymbpBVzlVNlRF6kVuR64oxMFX+CojJLyQmv6UYSlU0YVZ1e9zi9pcBa42huJ5dQE=&p=</TicketToken><IsAdmin>false</IsAdmin></StorageUserHeader></soap:Header><soap:Body><GetProfileResponse xmlns="http://www.msn.com/webservices/storage/2008"><GetProfileResult><ResourceID>C9133A4085E57C34!101</ResourceID><DateModified>2011-03-01T06:24:21.577-08:00</DateModified><ExpressionProfile><ResourceID>C9133A4085E57C34!130</ResourceID><DateModified>2011-02-28T15:00:25.977-08:00</DateModified><Photo><ItemType>Photo</ItemType><ResourceID>C9133A4085E57C34!132</ResourceID><DateModified>2011-02-28T15:00:26.713-08:00</DateModified><Name>Webcam</Name><DocumentStreams><DocumentStream xsi:type="PhotoStream"><DocumentStreamName>UserTileStatic</DocumentStreamName><MimeType>image/jpeg</MimeType><DataSize>2347</DataSize><PreAuthURL>http://sn2files.storage.msn.com/y1pSLNg0PlgMWDC0wQ8Qeriz4OKCmrd1fT-P6-GIgReDdlxsCQxX6c0-j_35MhEGCk0K1n8et_j8xjXVjSDxQ7dQg</PreAuthURL><PreAuthURLPartner>http://internal.sn2.pvt-livefilestore.com/y1pSLNg0PlgMWDC0wQ8Qeriz4OKCmrd1fT-P6-GIgReDdlxsCQxX6c0-j_35MhEGCk0K1n8et_j8xjXVjSDxQ7dQg</PreAuthURLPartner><WriteMode>Overwrite</WriteMode><SHA1Hash>rG952Xtm0+Ctn0o/LLeOorBBtik=</SHA1Hash><Genie>false</Genie><StreamVersion>258</StreamVersion><DocumentStreamType>UserTileStatic</DocumentStreamType><SizeX>96</SizeX><SizeY>96</SizeY></DocumentStream></DocumentStreams></Photo><PersonalStatus>- on www.ebuddy.com Web Messenger</PersonalStatus><PersonalStatusLastModified>2010-05-27T13:05:25-07:00</PersonalStatusLastModified><DisplayName>Michael</DisplayName><DisplayNameLastModified>2008-01-10T16:02:26-08:00</DisplayNameLastModified><StaticUserTilePublicURL>http://sn2files.storage.msn.com/y1pvl2Jn-4-_9Ofj9SL1vLwNeWQ5OcYt-g4qxVurMMylKIhNnQs6kWAFBc3RiEws2KTD8AV8EfPw6E</StaticUserTilePublicURL></ExpressionProfile></GetProfileResult></GetProfileResponse></soap:Body></soap:Envelope>' ps = ZSI.ParsedSoap(data) pname = ps.body_root.namespaceURI, ps.body_root.localName el_type = schema.GTD(*pname) if el_type is not None: tc = el_type(pname) else: tc = schema.GED(*pname) reply = ps.Parse(tc) profile = Profile.from_zsi(reply.GetProfileResult) try: print profile.serialize() except: import traceback traceback.print_exc() return profile