示例#1
0
    def get_pp_service(self):
        self.wsc = self.get_wsc_server()
        self.idp = self.get_idp_server()
        self.idp = self.add_services(self.idp)

        # Login from WSC
        sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump = self.login(
            self.wsc, self.idp)

        # Init discovery query
        wsc_disco = lasso.Discovery(self.wsc)
        wsc_disco.setSessionFromDump(sp_session_dump)
        wsc_disco.initQuery()
        wsc_disco.addRequestedServiceType(lasso.PP10_HREF)
        wsc_disco.buildRequestMsg()

        # Process query
        idp_disco = lasso.Discovery(self.idp)
        idp_disco.processRequestMsg(wsc_disco.msgBody)
        idp_disco.setIdentityFromDump(idp_identity_dump)
        idp_disco.getIdentity().addResourceOffering(
            self.get_resource_offering())
        idp_disco.buildResponseMsg()

        # Process response
        wsc_disco.processQueryResponseMsg(idp_disco.msgBody)
        return wsc_disco.getService()
示例#2
0
    def test01(self):
        '''Test a discovery modify'''
        self.wsp = self.get_wsp_server()
        self.idp = self.get_idp_server()
        self.idp = self.add_services(self.idp)

        # Login from WSP
        sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump = self.login(
            self.wsp, self.idp)

        # Init discovery modify
        wsp_disco = lasso.Discovery(self.wsp)
        wsp_disco.setIdentityFromDump(sp_identity_dump)
        wsp_disco.setSessionFromDump(sp_session_dump)
        resource_offering = self.get_resource_offering()
        wsp_disco.initModify()
        wsp_disco.addInsertEntry(resource_offering.serviceInstance,
                                 resource_offering.resourceId)
        wsp_disco.buildRequestMsg()

        # Process Modify
        request_type = lasso.getRequestTypeFromSoapMsg(wsp_disco.msgBody)
        self.failUnless(request_type == lasso.REQUEST_TYPE_DISCO_MODIFY)
        idp_disco = lasso.Discovery(self.idp)
        idp_disco.processRequestMsg(wsp_disco.msgBody)
        idp_disco.setIdentityFromDump(idp_identity_dump)
        idp_disco.buildResponseMsg()
        offerings = idp_disco.identity.getOfferings()
        self.failUnless('<disco:Status code="OK"/>' in idp_disco.msgBody)
        self.failUnless('<disco:ModifyResponse newEntryIDs="%s"' %
                        offerings[0].entryId in idp_disco.msgBody)
        self.failUnless(
            '<disco:ServiceType>urn:liberty:id-sis-pp:2003-08</disco:ServiceType>'
            in idp_disco.identity.dump())

        # Process Response
        wsp_disco.processModifyResponseMsg(idp_disco.msgBody)
        self.failUnless(wsp_disco.response.newEntryIds == '0')
示例#3
0
    def test01(self):
        '''Test a discovery remove'''
        self.wsp = self.get_wsp_server()
        self.idp = self.get_idp_server()
        self.idp = self.add_services(self.idp)

        # Login from WSP
        sp_identity_dump, sp_session_dump, idp_identity_dump, idp_session_dump = self.login(
            self.wsp, self.idp)

        # Init discovery modify
        wsp_disco = lasso.Discovery(self.wsp)
        wsp_disco.setIdentityFromDump(sp_identity_dump)
        wsp_disco.setSessionFromDump(sp_session_dump)
        wsp_disco.initModify()
        wsp_disco.addRemoveEntry('0')
        wsp_disco.buildRequestMsg()

        # Process Modify
        request_type = lasso.getRequestTypeFromSoapMsg(wsp_disco.msgBody)
        self.failUnless(request_type == lasso.REQUEST_TYPE_DISCO_MODIFY)
        idp_disco = lasso.Discovery(self.idp)
        idp_disco.processRequestMsg(wsp_disco.msgBody)
        idp_disco.setIdentityFromDump(idp_identity_dump)
        offering = self.get_resource_offering()
        idp_disco.getIdentity().addResourceOffering(offering)
        self.failUnless(
            '<disco:ServiceType>urn:liberty:id-sis-pp:2003-08</disco:ServiceType>'
            in idp_disco.identity.dump())
        idp_disco.buildResponseMsg()
        self.failUnless('<disco:Status code="OK"/>' in idp_disco.msgBody)
        self.failIf(
            '<disco:ServiceType>urn:liberty:id-sis-pp:2003-08</disco:ServiceType>'
            in idp_disco.identity.dump())

        # Process Response
        wsp_disco.processModifyResponseMsg(idp_disco.msgBody)