def getUserInfoFromTargetService( self ): ''' Running on proxier service to ask back-end service for user info. ''' request = self.request context = self.context # get cas client plugin instance plugin = context.restrictedTraverse( self.PATH_TO_PROXIER_PLUGIN, None ) if plugin: assertion = plugin.getAssertion( request.SESSION ) if not assertion: return 'No assertion found.' else: # get proxying ticket pt = assertion.getPrincipal().getProxyTicketFor( self.BACK_END_SERVICE_URL ) # call proxied service url = '%s/@@proxyAuthExample/getUserInfo?pt=%s' % \ ( self.BACK_END_SERVICE_URL, pt ) response = retrieveResponseFromServer( url ) return response return 'Get proxier service anz.casclient plugin fail, check your path setting.'
def getProxyTicketIdFor(self, pgtId, targetService): ''' See interfaces.IProxyRetriever. ''' ret = None url = self._constructUrl(pgtId, targetService) response = retrieveResponseFromServer(url) dom = minidom.parseString(response) elements = dom.getElementsByTagNameNS(self.CAS_NS, 'proxyFailure') if not elements: elements = dom.getElementsByTagNameNS(self.CAS_NS, 'proxyTicket') ret = elements[0].firstChild.data return ret
def getProxyTicketIdFor( self, pgtId, targetService ): ''' See interfaces.IProxyRetriever. ''' ret = None url = self._constructUrl( pgtId, targetService ) response = retrieveResponseFromServer( url ) dom = minidom.parseString( response ) elements = dom.getElementsByTagNameNS( self.CAS_NS, 'proxyFailure' ) if not elements: elements = dom.getElementsByTagNameNS( self.CAS_NS, 'proxyTicket' ) ret = elements[0].firstChild.data return ret
def retrieveResponseFromServer( self, validationUrl, ticket ): ''' See interfaces.ITicketValidator. ''' return retrieveResponseFromServer( validationUrl )