1414 from azure .core .credentials import AccessToken
1515 from azure .core .pipeline import AsyncPipeline
1616 from azure .core .pipeline .policies import AsyncHTTPPolicy , SansIOHTTPPolicy
17+ from azure .core .pipeline .transport import HttpRequest
1718 from ..._internal import AadClientCertificate
1819
1920 Policy = Union [AsyncHTTPPolicy , SansIOHTTPPolicy ]
@@ -44,41 +45,31 @@ async def obtain_token_by_authorization_code(
4445 request = self ._get_auth_code_request (
4546 scopes = scopes , code = code , redirect_uri = redirect_uri , client_secret = client_secret , ** kwargs
4647 )
47- now = int (time .time ())
48- response = await self ._pipeline .run (request , retry_on_methods = self ._POST , ** kwargs )
49- return self ._process_response (response , now )
48+ return await self ._run_pipeline (request , ** kwargs )
5049
5150 async def obtain_token_by_client_certificate (
5251 self , scopes : "Iterable[str]" , certificate : "AadClientCertificate" , ** kwargs : "Any"
5352 ) -> "AccessToken" :
5453 request = self ._get_client_certificate_request (scopes , certificate , ** kwargs )
55- now = int (time .time ())
56- response = await self ._pipeline .run (request , stream = False , retry_on_methods = self ._POST , ** kwargs )
57- return self ._process_response (response , now )
54+ return await self ._run_pipeline (request , stream = False , ** kwargs )
5855
5956 async def obtain_token_by_client_secret (
6057 self , scopes : "Iterable[str]" , secret : str , ** kwargs : "Any"
6158 ) -> "AccessToken" :
6259 request = self ._get_client_secret_request (scopes , secret , ** kwargs )
63- now = int (time .time ())
64- response = await self ._pipeline .run (request , retry_on_methods = self ._POST , ** kwargs )
65- return self ._process_response (response , now )
60+ return await self ._run_pipeline (request , ** kwargs )
6661
6762 async def obtain_token_by_jwt_assertion (
6863 self , scopes : "Iterable[str]" , assertion : str , ** kwargs : "Any"
6964 ) -> "AccessToken" :
7065 request = self ._get_jwt_assertion_request (scopes , assertion )
71- now = int (time .time ())
72- response = await self ._pipeline .run (request , stream = False , retry_on_methods = self ._POST , ** kwargs )
73- return self ._process_response (response , now )
66+ return await self ._run_pipeline (request , stream = False , ** kwargs )
7467
7568 async def obtain_token_by_refresh_token (
7669 self , scopes : "Iterable[str]" , refresh_token : str , ** kwargs : "Any"
7770 ) -> "AccessToken" :
7871 request = self ._get_refresh_token_request (scopes , refresh_token , ** kwargs )
79- now = int (time .time ())
80- response = await self ._pipeline .run (request , retry_on_methods = self ._POST , ** kwargs )
81- return self ._process_response (response , now )
72+ return await self ._run_pipeline (request , ** kwargs )
8273
8374 async def obtain_token_on_behalf_of (
8475 self ,
@@ -90,10 +81,16 @@ async def obtain_token_on_behalf_of(
9081 request = self ._get_on_behalf_of_request (
9182 scopes = scopes , client_credential = client_credential , user_assertion = user_assertion , ** kwargs
9283 )
93- now = int (time .time ())
94- response = await self ._pipeline .run (request , retry_on_methods = self ._POST , ** kwargs )
95- return self ._process_response (response , now )
84+ return await self ._run_pipeline (request , ** kwargs )
9685
9786 # pylint:disable=no-self-use
9887 def _build_pipeline (self , ** kwargs : "Any" ) -> "AsyncPipeline" :
9988 return build_async_pipeline (** kwargs )
89+
90+ async def _run_pipeline (self , request : "HttpRequest" , ** kwargs : "Any" ) -> "AccessToken" :
91+ # remove tenant_id kwarg that could have been passed from credential's get_token method
92+ # tenant_id is already part of `request` at this point
93+ kwargs .pop ("tenant_id" , None )
94+ now = int (time .time ())
95+ response = await self ._pipeline .run (request , retry_on_methods = self ._POST , ** kwargs )
96+ return self ._process_response (response , now )
0 commit comments