Skip to content

Commit 84ceb0d

Browse files
AndyButland
* Enhanced logging to see proper errors in the log when authentication fails * Bumped version to 10.1.1. * Applied similar amends to thrown AuthorizedServiceHttpExceptions for other requests. --------- Co-authored-by: Andy Butland <[email protected]>
1 parent 35390ce commit 84ceb0d

File tree

4 files changed

+21
-24
lines changed

4 files changed

+21
-24
lines changed

src/Umbraco.AuthorizedServices/Services/Implement/AuthorizedServiceAuthorizer.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,18 +74,18 @@ public async Task<AuthorizationResult> AuthorizeOAuth1ServiceAsync(string servic
7474
public async Task<AuthorizationResult> GenerateOAuth1RequestTokenAsync(string serviceAlias, string url)
7575
{
7676
HttpResponseMessage response = await AuthorizationRequestSender.SendOAuth1RequestForRequestToken(url);
77+
var responseContent = await response.Content.ReadAsStringAsync();
7778
if (response.IsSuccessStatusCode)
7879
{
79-
var responseContent = await response.Content.ReadAsStringAsync();
8080
return AuthorizationResult.AsSuccess(responseContent);
8181
}
8282
else
8383
{
8484
throw new AuthorizedServiceHttpException(
85-
$"Error response retrieving request token for '{serviceAlias}'.",
85+
$"Error response retrieving request token for '{serviceAlias}'. Status: {response.StatusCode}. Reason: {response.ReasonPhrase}. Content: {responseContent}.",
8686
response.StatusCode,
8787
response.ReasonPhrase,
88-
await response.Content.ReadAsStringAsync());
88+
responseContent);
8989
}
9090
}
9191

@@ -97,16 +97,17 @@ private async Task<AuthorizationResult> SendRequest(ServiceDetail serviceDetail,
9797
? await AuthorizationRequestSender.SendOAuth2ExchangeRequest(serviceDetail, parameters)
9898
: await AuthorizationRequestSender.SendOAuth2Request(serviceDetail, parameters));
9999

100+
var responseContent = await response.Content.ReadAsStringAsync();
100101
if (response.IsSuccessStatusCode)
101102
{
102103
if (serviceDetail.AuthenticationMethod == AuthenticationMethod.OAuth1)
103104
{
104-
OAuth1Token token = await CreateOAuth1TokenFromResponse(response);
105+
OAuth1Token token = CreateOAuth1TokenFromResponse(responseContent);
105106
await StoreOAuth1Token(serviceDetail.Alias, token);
106107
}
107108
else
108109
{
109-
OAuth2Token token = await CreateOAuth2TokenFromResponse(serviceDetail, response);
110+
OAuth2Token token = CreateOAuth2TokenFromResponse(serviceDetail, responseContent);
110111
await StoreOAuth2Token(serviceDetail.Alias, token);
111112
}
112113

@@ -115,10 +116,10 @@ private async Task<AuthorizationResult> SendRequest(ServiceDetail serviceDetail,
115116
else
116117
{
117118
throw new AuthorizedServiceHttpException(
118-
$"Error response from token request to '{serviceDetail.Alias}'.",
119+
$"Error response from token request to '{serviceDetail.Alias}'. Status: {response.StatusCode}. Reason: {response.ReasonPhrase}. Content: {responseContent}.",
119120
response.StatusCode,
120121
response.ReasonPhrase,
121-
await response.Content.ReadAsStringAsync());
122+
responseContent);
122123
}
123124
}
124125
}

src/Umbraco.AuthorizedServices/Services/Implement/AuthorizedServiceBase.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,11 @@ public AuthorizedServiceBase(
4747

4848
protected ServiceDetail GetServiceDetail(string serviceAlias) => _serviceDetailOptions.Get(serviceAlias);
4949

50-
protected async Task<OAuth2Token> CreateOAuth2TokenFromResponse(ServiceDetail serviceDetail, HttpResponseMessage response)
51-
{
52-
var responseContent = await response.Content.ReadAsStringAsync();
53-
return _tokenFactory.CreateFromOAuth2ResponseContent(responseContent, serviceDetail);
54-
}
50+
protected OAuth1Token CreateOAuth1TokenFromResponse(string responseContent) =>
51+
_tokenFactory.CreateFromOAuth1ResponseContent(responseContent);
5552

56-
protected async Task<OAuth1Token> CreateOAuth1TokenFromResponse(HttpResponseMessage response)
57-
{
58-
var responseContent = await response.Content.ReadAsStringAsync();
59-
return _tokenFactory.CreateFromOAuth1ResponseContent(responseContent);
60-
}
53+
protected OAuth2Token CreateOAuth2TokenFromResponse(ServiceDetail serviceDetail, string responseContent) =>
54+
_tokenFactory.CreateFromOAuth2ResponseContent(responseContent, serviceDetail);
6155

6256
protected async Task<OAuth2Token?> GetStoredToken(string serviceAlias) => await OAuth2TokenStorage.GetTokenAsync(serviceAlias);
6357

src/Umbraco.AuthorizedServices/Services/Implement/AuthorizedServiceCaller.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,19 +289,20 @@ private async Task<OAuth2Token> EnsureAccessToken(ServiceDetail serviceDetail, O
289289
Dictionary<string, string> parameters = _refreshTokenParametersBuilder.BuildParameters(serviceDetail, refreshToken);
290290

291291
HttpResponseMessage response = await AuthorizationRequestSender.SendOAuth2Request(serviceDetail, parameters);
292+
var responseContent = await response.Content.ReadAsStringAsync();
292293
if (response.IsSuccessStatusCode)
293294
{
294-
OAuth2Token token = await CreateOAuth2TokenFromResponse(serviceDetail, response);
295+
OAuth2Token token = CreateOAuth2TokenFromResponse(serviceDetail, responseContent);
295296
await StoreOAuth2Token(serviceDetail.Alias, token);
296297
return token;
297298
}
298299
else
299300
{
300301
throw new AuthorizedServiceHttpException(
301-
$"Error response from refresh token request to '{serviceDetail.Alias}'.",
302+
$"Error response from refresh token request to '{serviceDetail.Alias}'. Status: {response.StatusCode}. Reason: {response.ReasonPhrase}. Content: {responseContent}.",
302303
response.StatusCode,
303304
response.ReasonPhrase,
304-
await response.Content.ReadAsStringAsync());
305+
responseContent);
305306
}
306307
}
307308

@@ -324,19 +325,20 @@ private async Task<OAuth2Token> EnsureExchangeAccessToken(ServiceDetail serviceD
324325
Dictionary<string, string> parameters = _exchangeTokenParametersBuilder.BuildParameters(serviceDetail, accessToken);
325326

326327
HttpResponseMessage response = await AuthorizationRequestSender.SendOAuth2ExchangeRequest(serviceDetail, parameters);
328+
var responseContent = await response.Content.ReadAsStringAsync();
327329
if (response.IsSuccessStatusCode)
328330
{
329-
OAuth2Token token = await CreateOAuth2TokenFromResponse(serviceDetail, response);
331+
OAuth2Token token = CreateOAuth2TokenFromResponse(serviceDetail, responseContent);
330332
await StoreOAuth2Token(serviceAlias, token);
331333
return token;
332334
}
333335
else
334336
{
335337
throw new AuthorizedServiceHttpException(
336-
$"Error response from exchange access token request to '{serviceAlias}'.",
338+
$"Error response from exchange access token request to '{serviceDetail.Alias}'. Status: {response.StatusCode}. Reason: {response.ReasonPhrase}. Content: {responseContent}.",
337339
response.StatusCode,
338340
response.ReasonPhrase,
339-
await response.Content.ReadAsStringAsync());
341+
responseContent);
340342
}
341343
}
342344

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3-
"version": "10.1.0",
3+
"version": "10.1.1",
44
"assemblyVersion": {
55
"precision": "build"
66
},

0 commit comments

Comments
 (0)