Exemple #1
0
    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)
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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,
Exemple #5
0
    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
Exemple #6
0
    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,
Exemple #7
0
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=&amp;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