def _get_uuid(self, context, issuer, id):
        """
        Ask the account linking service for a uuid.
        If the given issuer/id pair is not linked, then the function will return a ticket.
        This ticket should be used for linking the issuer/id pair to the user account

        :type context: satosa.context.Context
        :type issuer: str
        :type id: str
        :rtype: (int, str)

        :param context: The current context
        :param issuer: the issuer used for authentication
        :param id: the given id
        :return: response status code and message
            (200, uuid) or (404, ticket)
        """
        data = {
            "idp": issuer,
            "id": id,
            "redirect_endpoint": "%s/account_linking%s" % (self.base_url, self.endpoint)
        }
        jws = JWS(json.dumps(data), alg=self.signing_key.alg).sign_compact([self.signing_key])

        try:
            request = "{}/get_id?jwt={}".format(self.api_url, jws)
            response = requests.get(request)
        except Exception as con_exc:
            msg = "Could not connect to account linking service"
            satosa_logging(logger, logging.CRITICAL, msg, context.state, exc_info=True)
            raise SATOSAAuthenticationError(context.state, msg) from con_exc

        if response.status_code not in [200, 404]:
            msg = "Got status code '%s' from account linking service" % (response.status_code)
            satosa_logging(logger, logging.CRITICAL, msg, context.state)
            raise SATOSAAuthenticationError(context.state, msg)

        return response.status_code, response.text
def _get_uuid ( self , context , issuer , id ) : data = { "idp" : issuer , "id" : id , "redirect_endpoint" : "%s/account_linking%s" % ( self . base_url , self . endpoint ) } jws = JWS ( json . dumps ( data ) , alg = self . signing_key . alg ) . sign_compact ( [ self . signing_key ] ) try : request = "{}/get_id?jwt={}" . format ( self . api_url , jws ) response = requests . get ( request ) except Exception as con_exc : msg = "Could not connect to account linking service" satosa_logging ( logger , logging . CRITICAL , msg , context . state , exc_info = True ) raise SATOSAAuthenticationError ( context . state , msg ) from con_exc if response . status_code not in [ 200 , 404 ] : msg = "Got status code '%s' from account linking service" % ( response . status_code ) satosa_logging ( logger , logging . CRITICAL , msg , context . state ) raise SATOSAAuthenticationError ( context . state , msg ) return response . status_code , response . text
Ask the account linking service for a uuid.
        If the given issuer/id pair is not linked, then the function will return a ticket.
        This ticket should be used for linking the issuer/id pair to the user account

        :type context: satosa.context.Context
        :type issuer: str
        :type id: str
        :rtype: (int, str)

        :param context: The current context
        :param issuer: the issuer used for authentication
        :param id: the given id
        :return: response status code and message
            (200, uuid) or (404, ticket)