From 0d2b8b84ee7aab3aa2e25baf3197dbb1d3433632 Mon Sep 17 00:00:00 2001 From: Benjamin Howarth Date: Wed, 27 Feb 2019 11:41:56 +0000 Subject: [PATCH] Updated AuthorizationHeaderValueGetter to support passing HttpRequestMessage into getToken() as OAuth signature generation may rely on having access to properties in the request (example: Twitter reuest signing) --- Refit/AuthenticatedHttpClientHandler.cs | 6 +++--- Refit/RefitSettings.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Refit/AuthenticatedHttpClientHandler.cs b/Refit/AuthenticatedHttpClientHandler.cs index 5568aba8b..ec73673e7 100644 --- a/Refit/AuthenticatedHttpClientHandler.cs +++ b/Refit/AuthenticatedHttpClientHandler.cs @@ -10,9 +10,9 @@ namespace Refit { class AuthenticatedHttpClientHandler : DelegatingHandler { - readonly Func> getToken; + readonly Func> getToken; - public AuthenticatedHttpClientHandler(Func> getToken, HttpMessageHandler innerHandler = null) + public AuthenticatedHttpClientHandler(Func> getToken, HttpMessageHandler innerHandler = null) : base(innerHandler ?? new HttpClientHandler()) { this.getToken = getToken ?? throw new ArgumentNullException(nameof(getToken)); @@ -24,7 +24,7 @@ protected override async Task SendAsync(HttpRequestMessage var auth = request.Headers.Authorization; if (auth != null) { - var token = await getToken().ConfigureAwait(false); + var token = await getToken(request).ConfigureAwait(false); request.Headers.Authorization = new AuthenticationHeaderValue(auth.Scheme, token); } diff --git a/Refit/RefitSettings.cs b/Refit/RefitSettings.cs index 20226adf0..cc4f4cea1 100644 --- a/Refit/RefitSettings.cs +++ b/Refit/RefitSettings.cs @@ -21,7 +21,7 @@ public RefitSettings() ContentSerializer = new JsonContentSerializer(); } - public Func> AuthorizationHeaderValueGetter { get; set; } + public Func> AuthorizationHeaderValueGetter { get; set; } public Func HttpMessageHandlerFactory { get; set; } [Obsolete("Set RefitSettings.ContentSerializer = new JsonContentSerializer(JsonSerializerSettings) instead.", false)]