Skip to content

Commit e636ab4

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents cbcc74b + 50d0f8a commit e636ab4

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

.github/workflows/build-dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
uses: actions/checkout@v3
2626
-
2727
name: Setup .NET
28-
uses: actions/setup-dotnet@v2
28+
uses: actions/setup-dotnet@v3
2929
with:
3030
dotnet-version: '6.0'
3131
-

.github/workflows/pull-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@v3
1616
-
1717
name: Setup .NET
18-
uses: actions/setup-dotnet@v2
18+
uses: actions/setup-dotnet@v3
1919
with:
2020
dotnet-version: '6.0'
2121
-

docs/usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ public class TwitterAuthenticator : AuthenticatorBase {
4848
}
4949

5050
protected override async ValueTask<Parameter> GetAuthenticationParameter(string accessToken) {
51-
var token = string.IsNullOrEmpty(Token) ? await GetToken() : Token;
52-
return new HeaderParameter(KnownHeaders.Authorization, token);
51+
Token = string.IsNullOrEmpty(Token) ? await GetToken() : Token;
52+
return new HeaderParameter(KnownHeaders.Authorization, Token);
5353
}
5454
}
5555
```

src/RestSharp/Authenticators/JwtAuthenticator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public JwtAuthenticator(string accessToken) : base(GetToken(accessToken)) { }
2828
[PublicAPI]
2929
public void SetBearerToken(string accessToken) => Token = GetToken(accessToken);
3030

31-
static string GetToken(string accessToken) => $"Bearer {Ensure.NotEmpty(accessToken, nameof(accessToken))}";
31+
static string GetToken(string accessToken) => Ensure.NotEmpty(accessToken, nameof(accessToken)).StartsWith("Bearer ") ? accessToken : $"Bearer {accessToken}";
3232

3333
protected override ValueTask<Parameter> GetAuthenticationParameter(string accessToken)
3434
=> new(new HeaderParameter(KnownHeaders.Authorization, accessToken));

test/RestSharp.Tests/JwtAuthTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ public async Task Can_Set_ValidFormat_Auth_Header() {
3434
Assert.True(authParam.Type == ParameterType.HttpHeader);
3535
Assert.Equal(_expectedAuthHeaderContent, authParam.Value);
3636
}
37+
38+
[Fact]
39+
public async Task Can_Set_ValidFormat_Auth_Header_With_Bearer_Prefix() {
40+
var client = new RestClient { Authenticator = new JwtAuthenticator($"Bearer {_testJwt}") };
41+
var request = new RestRequest();
42+
43+
//In real case client.Execute(request) will invoke Authenticate method
44+
await client.Authenticator.Authenticate(client, request);
45+
46+
var authParam = request.Parameters.Single(p => p.Name.Equals(KnownHeaders.Authorization, StringComparison.OrdinalIgnoreCase));
47+
48+
Assert.True(authParam.Type == ParameterType.HttpHeader);
49+
Assert.Equal(_expectedAuthHeaderContent, authParam.Value);
50+
}
3751

3852
[Fact]
3953
public async Task Check_Only_Header_Authorization() {

0 commit comments

Comments
 (0)