azure-keyvault/azure/keyvault/key_vault_authentication.py
def _handle_401(self, response, **kwargs):
        """
        Takes the response authenticates and resends if neccissary
        :return: The final response to the authenticated request
        :rtype: requests.Response
        """
        # If response is not 401 do not auth and return response
        if not response.status_code == 401:
            self._thread_local.auth_attempted = False
            return response

        # If we've already attempted to auth for this request once, do not auth and return response
        if self._thread_local.auth_attempted:
            self._thread_local.auth_attempted = False
            return response

        auth_header = response.headers.get('www-authenticate', '')

        # Otherwise authenticate and retry the request
        self._thread_local.auth_attempted = True

        # parse the challenge
        challenge = HttpChallenge(response.request.url, auth_header, response.headers)

        # bearer and PoP are the only authentication schemes supported at this time
        # if the response auth header is not a bearer challenge or pop challange do not auth and return response
        if not (challenge.is_bearer_challenge() or challenge.is_pop_challenge()):
            self._thread_local.auth_attempted = False
            return response

        # add the challenge to the cache
        ChallengeCache.set_challenge_for_url(response.request.url, challenge)

        # Consume content and release the original connection
        # to allow our new request to reuse the same one.
        response.content
        response.close()

        # copy the request to resend
        prep = response.request.copy()

        if self._thread_local.orig_body is not None:
            # replace the body with the saved body
            prep.prepare_body(data=self._thread_local.orig_body, files=None)

        extract_cookies_to_jar(prep._cookies, response.request, response.raw)
        prep.prepare_cookies(prep._cookies)

        security = self._get_message_security(prep, challenge)

        # auth and protect the prepped request message
        security.protect_request(prep)

        # resend the request with proper authentication and message protection
        _response = response.connection.send(prep, **kwargs)
        _response.history.append(response)
        _response.request = prep

        # unprotected the response
        security.unprotect_response(_response)

        return _response
def _handle_401(self, response, **kwargs):
        """
        Takes the response authenticates and resends if neccissary
        :return: The final response to the authenticated request
        :rtype: requests.Response
        """
        # If response is not 401 do not auth and return response
        if not response.status_code == 401:
            self._thread_local.auth_attempted = False
            return response

        # If we've already attempted to auth for this request once, do not auth and return response
        if self._thread_local.auth_attempted:
            self._thread_local.auth_attempted = False
            return response

        auth_header = response.headers.get('www-authenticate', '')

        # Otherwise authenticate and retry the request
        self._thread_local.auth_attempted = True

        # parse the challenge
        challenge = HttpChallenge(response.request.url, auth_header, response.headers)

        # bearer and PoP are the only authentication schemes supported at this time
        # if the response auth header is not a bearer challenge or pop challange do not auth and return response
        if not (challenge.is_bearer_challenge() or challenge.is_pop_challenge()):
            self._thread_local.auth_attempted = False
            return response

        # add the challenge to the cache
        ChallengeCache.set_challenge_for_url(response.request.url, challenge)

        # Consume content and release the original connection
        # to allow our new request to reuse the same one.
        response.content
        response.close()

        # copy the request to resend
        prep = response.request.copy()

        if self._thread_local.orig_body is not None:
            # replace the body with the saved body
            prep.prepare_body(data=self._thread_local.orig_body, files=None)

        extract_cookies_to_jar(prep._cookies, response.request, response.raw)
        prep.prepare_cookies(prep._cookies)

        security = self._get_message_security(prep, challenge)

        # auth and protect the prepped request message
        security.protect_request(prep)

        # resend the request with proper authentication and message protection
        _response = response.connection.send(prep, **kwargs)
        _response.history.append(response)
        _response.request = prep

        # unprotected the response
        security.unprotect_response(_response)

        return _response
def _handle_401 ( self , response , * * kwargs ) : # If response is not 401 do not auth and return response if not response . status_code == 401 : self . _thread_local . auth_attempted = False return response # If we've already attempted to auth for this request once, do not auth and return response if self . _thread_local . auth_attempted : self . _thread_local . auth_attempted = False return response auth_header = response . headers . get ( 'www-authenticate' , '' ) # Otherwise authenticate and retry the request self . _thread_local . auth_attempted = True # parse the challenge challenge = HttpChallenge ( response . request . url , auth_header , response . headers ) # bearer and PoP are the only authentication schemes supported at this time # if the response auth header is not a bearer challenge or pop challange do not auth and return response if not ( challenge . is_bearer_challenge ( ) or challenge . is_pop_challenge ( ) ) : self . _thread_local . auth_attempted = False return response # add the challenge to the cache ChallengeCache . set_challenge_for_url ( response . request . url , challenge ) # Consume content and release the original connection # to allow our new request to reuse the same one. response . content response . close ( ) # copy the request to resend prep = response . request . copy ( ) if self . _thread_local . orig_body is not None : # replace the body with the saved body prep . prepare_body ( data = self . _thread_local . orig_body , files = None ) extract_cookies_to_jar ( prep . _cookies , response . request , response . raw ) prep . prepare_cookies ( prep . _cookies ) security = self . _get_message_security ( prep , challenge ) # auth and protect the prepped request message security . protect_request ( prep ) # resend the request with proper authentication and message protection _response = response . connection . send ( prep , * * kwargs ) _response . history . append ( response ) _response . request = prep # unprotected the response security . unprotect_response ( _response ) return _response
Takes the response authenticates and resends if neccissary
        :return: The final response to the authenticated request
        :rtype: requests.Response
Takes the response authenticates and resends if neccissary : return : The final response to the authenticated request : rtype : requests . Response