diff --git a/identity-server/src/IdentityServer/Endpoints/TokenRevocationEndpoint.cs b/identity-server/src/IdentityServer/Endpoints/TokenRevocationEndpoint.cs
index d36073bf7..d32e9e948 100644
--- a/identity-server/src/IdentityServer/Endpoints/TokenRevocationEndpoint.cs
+++ b/identity-server/src/IdentityServer/Endpoints/TokenRevocationEndpoint.cs
@@ -112,7 +112,7 @@ internal class TokenRevocationEndpoint : IEndpointHandler
}
_logger.LogTrace("Calling into token revocation response generator: {type}", _responseGenerator.GetType().FullName);
- var response = await _responseGenerator.ProcessAsync(requestValidationResult);
+ var response = await _responseGenerator.ProcessAsync(requestValidationResult, context.RequestAborted);
if (response.Success)
{
diff --git a/identity-server/src/IdentityServer/ResponseHandling/Default/TokenResponseGenerator.cs b/identity-server/src/IdentityServer/ResponseHandling/Default/TokenResponseGenerator.cs
index 12a6a2b3a..d307dc96f 100644
--- a/identity-server/src/IdentityServer/ResponseHandling/Default/TokenResponseGenerator.cs
+++ b/identity-server/src/IdentityServer/ResponseHandling/Default/TokenResponseGenerator.cs
@@ -216,7 +216,7 @@ public class TokenResponseGenerator : ITokenResponseGenerator
RefreshToken = request.ValidatedRequest.RefreshToken,
Client = request.ValidatedRequest.Client,
MustUpdate = mustUpdate
- });
+ }, ct);
return new TokenResponse
{
@@ -449,7 +449,7 @@ public class TokenResponseGenerator : ITokenResponseGenerator
RequestedResourceIndicator = request.RequestedResourceIndicator,
ProofType = request.ProofType
};
- var refreshToken = await RefreshTokenService.CreateRefreshTokenAsync(rtRequest);
+ var refreshToken = await RefreshTokenService.CreateRefreshTokenAsync(rtRequest, ct);
return (accessToken, refreshToken);
}
diff --git a/identity-server/src/IdentityServer/ResponseHandling/Default/TokenRevocationResponseGenerator.cs b/identity-server/src/IdentityServer/ResponseHandling/Default/TokenRevocationResponseGenerator.cs
index f47808aab..f144f59c6 100644
--- a/identity-server/src/IdentityServer/ResponseHandling/Default/TokenRevocationResponseGenerator.cs
+++ b/identity-server/src/IdentityServer/ResponseHandling/Default/TokenRevocationResponseGenerator.cs
@@ -51,12 +51,8 @@ public class TokenRevocationResponseGenerator : ITokenRevocationResponseGenerato
Logger = logger;
}
- ///
- /// Creates the revocation endpoint response and processes the revocation request.
- ///
- /// The userinfo request validation result.
- ///
- public virtual async Task ProcessAsync(TokenRevocationRequestValidationResult validationResult)
+ ///
+ public virtual async Task ProcessAsync(TokenRevocationRequestValidationResult validationResult, CT ct)
{
using var activity = Tracing.BasicActivitySource.StartActivity("TokenRevocationResponseGenerator.Process");
@@ -70,22 +66,22 @@ public class TokenRevocationResponseGenerator : ITokenRevocationResponseGenerato
if (validationResult.TokenTypeHint == Constants.TokenTypeHints.AccessToken)
{
Logger.LogTrace("Hint was for access token");
- response.Success = await RevokeAccessTokenAsync(validationResult);
+ response.Success = await RevokeAccessTokenAsync(validationResult, ct);
}
else if (validationResult.TokenTypeHint == Constants.TokenTypeHints.RefreshToken)
{
Logger.LogTrace("Hint was for refresh token");
- response.Success = await RevokeRefreshTokenAsync(validationResult);
+ response.Success = await RevokeRefreshTokenAsync(validationResult, ct);
}
else
{
Logger.LogTrace("No hint for token type");
- response.Success = await RevokeAccessTokenAsync(validationResult);
+ response.Success = await RevokeAccessTokenAsync(validationResult, ct);
if (!response.Success)
{
- response.Success = await RevokeRefreshTokenAsync(validationResult);
+ response.Success = await RevokeRefreshTokenAsync(validationResult, ct);
response.TokenType = Constants.TokenTypeHints.RefreshToken;
}
else
@@ -100,16 +96,16 @@ public class TokenRevocationResponseGenerator : ITokenRevocationResponseGenerato
///
/// Revoke access token only if it belongs to client doing the request.
///
- protected virtual async Task RevokeAccessTokenAsync(TokenRevocationRequestValidationResult validationResult)
+ protected virtual async Task RevokeAccessTokenAsync(TokenRevocationRequestValidationResult validationResult, CT ct)
{
- var token = await ReferenceTokenStore.GetReferenceTokenAsync(validationResult.Token, default);
+ var token = await ReferenceTokenStore.GetReferenceTokenAsync(validationResult.Token, ct);
if (token != null)
{
if (token.ClientId == validationResult.Client.ClientId)
{
Logger.LogDebug("Access token revoked");
- await ReferenceTokenStore.RemoveReferenceTokenAsync(validationResult.Token, default);
+ await ReferenceTokenStore.RemoveReferenceTokenAsync(validationResult.Token, ct);
}
else
{
@@ -125,17 +121,17 @@ public class TokenRevocationResponseGenerator : ITokenRevocationResponseGenerato
///
/// Revoke refresh token only if it belongs to client doing the request
///
- protected virtual async Task RevokeRefreshTokenAsync(TokenRevocationRequestValidationResult validationResult)
+ protected virtual async Task RevokeRefreshTokenAsync(TokenRevocationRequestValidationResult validationResult, CT ct)
{
- var token = await RefreshTokenStore.GetRefreshTokenAsync(validationResult.Token, default);
+ var token = await RefreshTokenStore.GetRefreshTokenAsync(validationResult.Token, ct);
if (token != null)
{
if (token.ClientId == validationResult.Client.ClientId)
{
Logger.LogDebug("Refresh token revoked");
- await RefreshTokenStore.RemoveRefreshTokenAsync(validationResult.Token, default);
- await ReferenceTokenStore.RemoveReferenceTokensAsync(token.SubjectId, token.ClientId, token.SessionId, default);
+ await RefreshTokenStore.RemoveRefreshTokenAsync(validationResult.Token, ct);
+ await ReferenceTokenStore.RemoveReferenceTokensAsync(token.SubjectId, token.ClientId, token.SessionId, ct);
}
else
{
diff --git a/identity-server/src/IdentityServer/ResponseHandling/ITokenRevocationResponseGenerator.cs b/identity-server/src/IdentityServer/ResponseHandling/ITokenRevocationResponseGenerator.cs
index 5f343cd0a..665112fb5 100644
--- a/identity-server/src/IdentityServer/ResponseHandling/ITokenRevocationResponseGenerator.cs
+++ b/identity-server/src/IdentityServer/ResponseHandling/ITokenRevocationResponseGenerator.cs
@@ -15,6 +15,7 @@ public interface ITokenRevocationResponseGenerator
/// Creates the revocation endpoint response and processes the revocation request.
///
/// The userinfo request validation result.
+ /// The cancellation token.
///
- Task ProcessAsync(TokenRevocationRequestValidationResult validationResult);
+ Task ProcessAsync(TokenRevocationRequestValidationResult validationResult, CT ct);
}
diff --git a/identity-server/src/IdentityServer/Services/Default/DefaultRefreshTokenService.cs b/identity-server/src/IdentityServer/Services/Default/DefaultRefreshTokenService.cs
index e994b83c7..1dce8591a 100644
--- a/identity-server/src/IdentityServer/Services/Default/DefaultRefreshTokenService.cs
+++ b/identity-server/src/IdentityServer/Services/Default/DefaultRefreshTokenService.cs
@@ -66,13 +66,8 @@ public class DefaultRefreshTokenService : IRefreshTokenService
Logger = logger;
}
- ///
- /// Validates a refresh token
- ///
- /// The token handle.
- /// The client.
- ///
- public virtual async Task ValidateRefreshTokenAsync(string tokenHandle, Client client)
+ ///
+ public virtual async Task ValidateRefreshTokenAsync(string tokenHandle, Client client, CT ct)
{
using var activity = Tracing.ServiceActivitySource.StartActivity("DefaultRefreshTokenService.ValidateRefreshToken");
@@ -87,7 +82,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
/////////////////////////////////////////////
// check if refresh token is valid
/////////////////////////////////////////////
- var refreshToken = await RefreshTokenStore.GetRefreshTokenAsync(tokenHandle, default);
+ var refreshToken = await RefreshTokenStore.GetRefreshTokenAsync(tokenHandle, ct);
if (refreshToken == null)
{
Logger.LogWarning("Invalid refresh token");
@@ -174,7 +169,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
///
/// The refresh token handle
///
- public virtual async Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request)
+ public virtual async Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request, CT ct)
{
using var activity = Tracing.ServiceActivitySource.StartActivity("DefaultRefreshTokenService.CreateRefreshToken");
@@ -218,7 +213,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
};
refreshToken.SetAccessToken(request.AccessToken, request.RequestedResourceIndicator);
- var handle = await RefreshTokenStore.StoreRefreshTokenAsync(refreshToken, default);
+ var handle = await RefreshTokenStore.StoreRefreshTokenAsync(refreshToken, ct);
return handle;
}
@@ -228,7 +223,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
///
/// The refresh token handle
///
- public virtual async Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request)
+ public virtual async Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request, CT ct)
{
using var activity = Tracing.ServiceActivitySource.StartActivity("DefaultTokenCreationService.UpdateRefreshToken");
@@ -245,7 +240,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
{
Logger.LogDebug("Token usage is one-time only and refresh behavior is delete. Deleting current handle, and generating new handle");
- await RefreshTokenStore.RemoveRefreshTokenAsync(handle, default);
+ await RefreshTokenStore.RemoveRefreshTokenAsync(handle, ct);
}
else
{
@@ -255,7 +250,7 @@ public class DefaultRefreshTokenService : IRefreshTokenService
if (request.RefreshToken.ConsumedTime == null)
{
request.RefreshToken.ConsumedTime = TimeProvider.GetUtcNow().UtcDateTime;
- await RefreshTokenStore.UpdateRefreshTokenAsync(handle, request.RefreshToken, default);
+ await RefreshTokenStore.UpdateRefreshTokenAsync(handle, request.RefreshToken, ct);
}
}
@@ -292,12 +287,12 @@ public class DefaultRefreshTokenService : IRefreshTokenService
{
// set it to null so that we save non-consumed token
request.RefreshToken.ConsumedTime = null;
- handle = await RefreshTokenStore.StoreRefreshTokenAsync(request.RefreshToken, default);
+ handle = await RefreshTokenStore.StoreRefreshTokenAsync(request.RefreshToken, ct);
Logger.LogDebug("Created refresh token in store");
}
else if (needsUpdate)
{
- await RefreshTokenStore.UpdateRefreshTokenAsync(handle, request.RefreshToken, default);
+ await RefreshTokenStore.UpdateRefreshTokenAsync(handle, request.RefreshToken, ct);
Logger.LogDebug("Updated refresh token in store");
}
else
diff --git a/identity-server/src/IdentityServer/Services/Default/ServerSideSessionRefreshTokenService.cs b/identity-server/src/IdentityServer/Services/Default/ServerSideSessionRefreshTokenService.cs
index f323cd464..2b20ea0a1 100644
--- a/identity-server/src/IdentityServer/Services/Default/ServerSideSessionRefreshTokenService.cs
+++ b/identity-server/src/IdentityServer/Services/Default/ServerSideSessionRefreshTokenService.cs
@@ -43,9 +43,9 @@ internal class ServerSideSessionRefreshTokenService : IRefreshTokenService
///
- public virtual async Task ValidateRefreshTokenAsync(string tokenHandle, Client client)
+ public virtual async Task ValidateRefreshTokenAsync(string tokenHandle, Client client, CT ct)
{
- var result = await Inner.ValidateRefreshTokenAsync(tokenHandle, client);
+ var result = await Inner.ValidateRefreshTokenAsync(tokenHandle, client, ct);
using var activity = Tracing.ServiceActivitySource.StartActivity("ServerSideSessionRefreshTokenService.ValidateRefreshToken");
@@ -69,8 +69,8 @@ internal class ServerSideSessionRefreshTokenService : IRefreshTokenService
}
///
- public Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request) => Inner.CreateRefreshTokenAsync(request);
+ public Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request, CT ct) => Inner.CreateRefreshTokenAsync(request, ct);
///
- public Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request) => Inner.UpdateRefreshTokenAsync(request);
+ public Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request, CT ct) => Inner.UpdateRefreshTokenAsync(request, ct);
}
diff --git a/identity-server/src/IdentityServer/Services/IRefreshTokenService.cs b/identity-server/src/IdentityServer/Services/IRefreshTokenService.cs
index cc313ca90..2b7a86a5b 100644
--- a/identity-server/src/IdentityServer/Services/IRefreshTokenService.cs
+++ b/identity-server/src/IdentityServer/Services/IRefreshTokenService.cs
@@ -19,22 +19,27 @@ public interface IRefreshTokenService
///
/// The refresh token.
/// The client.
+ /// The cancellation token.
///
- Task ValidateRefreshTokenAsync(string token, Client client);
+ Task ValidateRefreshTokenAsync(string token, Client client, CT ct);
///
/// Creates the refresh token.
///
+ /// The refresh token creation request.
+ /// The cancellation token.
///
/// The refresh token handle
///
- Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request);
+ Task CreateRefreshTokenAsync(RefreshTokenCreationRequest request, CT ct);
///
/// Updates the refresh token.
///
+ /// The refresh token update request.
+ /// The cancellation token.
///
/// The refresh token handle
///
- Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request);
+ Task UpdateRefreshTokenAsync(RefreshTokenUpdateRequest request, CT ct);
}
diff --git a/identity-server/src/IdentityServer/Validation/Default/IntrospectionRequestValidator.cs b/identity-server/src/IdentityServer/Validation/Default/IntrospectionRequestValidator.cs
index ba422ddff..b51c60dad 100644
--- a/identity-server/src/IdentityServer/Validation/Default/IntrospectionRequestValidator.cs
+++ b/identity-server/src/IdentityServer/Validation/Default/IntrospectionRequestValidator.cs
@@ -128,13 +128,13 @@ internal class IntrospectionRequestValidator : IIntrospectionRequestValidator
{
_logger.LogDebug("Failed to validate token as access token. Possible incorrect token_type_hint parameter.");
}
- claims = await GetRefreshTokenClaimsAsync(token, client);
+ claims = await GetRefreshTokenClaimsAsync(token, client, ct);
}
}
else
{
// try refresh token
- claims = await GetRefreshTokenClaimsAsync(token, client);
+ claims = await GetRefreshTokenClaimsAsync(token, client, ct);
if (claims == null)
{
// fall back to access token
@@ -181,9 +181,9 @@ internal class IntrospectionRequestValidator : IIntrospectionRequestValidator
///
/// Attempt to obtain the claims for a token as a refresh token for a client.
///
- private async Task> GetRefreshTokenClaimsAsync(string token, Client client)
+ private async Task> GetRefreshTokenClaimsAsync(string token, Client client, CT ct)
{
- var refreshValidationResult = await _refreshTokenService.ValidateRefreshTokenAsync(token, client);
+ var refreshValidationResult = await _refreshTokenService.ValidateRefreshTokenAsync(token, client, ct);
if (!refreshValidationResult.IsError)
{
var iat = ((DateTimeOffset)refreshValidationResult.RefreshToken.CreationTime).ToUnixTimeSeconds();
diff --git a/identity-server/src/IdentityServer/Validation/Default/TokenRequestValidator.cs b/identity-server/src/IdentityServer/Validation/Default/TokenRequestValidator.cs
index 5e04e80f8..4d721af09 100644
--- a/identity-server/src/IdentityServer/Validation/Default/TokenRequestValidator.cs
+++ b/identity-server/src/IdentityServer/Validation/Default/TokenRequestValidator.cs
@@ -698,7 +698,7 @@ internal class TokenRequestValidator : ITokenRequestValidator
return Invalid(OidcConstants.TokenErrors.InvalidGrant);
}
- var result = await _refreshTokenService.ValidateRefreshTokenAsync(refreshTokenHandle, _validatedRequest.Client);
+ var result = await _refreshTokenService.ValidateRefreshTokenAsync(refreshTokenHandle, _validatedRequest.Client, default);
if (result.IsError)
{
diff --git a/identity-server/test/IdentityServer.IntegrationTests/Hosting/ServerSideSessionTests.cs b/identity-server/test/IdentityServer.IntegrationTests/Hosting/ServerSideSessionTests.cs
index e80ef0e0d..290a57c1d 100644
--- a/identity-server/test/IdentityServer.IntegrationTests/Hosting/ServerSideSessionTests.cs
+++ b/identity-server/test/IdentityServer.IntegrationTests/Hosting/ServerSideSessionTests.cs
@@ -309,7 +309,7 @@ public class ServerSideSessionTests
RedirectUri = "https://client/callback"
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
await _sessionMgmt.RemoveSessionsAsync(new RemoveSessionsContext
{
@@ -320,7 +320,7 @@ public class ServerSideSessionTests
SendBackchannelLogoutNotification = false
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
}
[Fact]
@@ -338,7 +338,7 @@ public class ServerSideSessionTests
RedirectUri = "https://client/callback"
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
await _sessionMgmt.RemoveSessionsAsync(new RemoveSessionsContext
{
@@ -350,7 +350,7 @@ public class ServerSideSessionTests
ClientIds = new[] { "foo" }
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
}
[Fact]
@@ -535,7 +535,7 @@ public class ServerSideSessionTests
RedirectUri = "https://client/callback"
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
var session = (await _sessionStore.GetSessionsAsync(new SessionFilter { SubjectId = "alice" })).Single();
session.Expires = System.DateTime.UtcNow.AddMinutes(-1);
@@ -543,7 +543,7 @@ public class ServerSideSessionTests
await Task.Delay(1000);
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
}
[Fact]
@@ -561,11 +561,11 @@ public class ServerSideSessionTests
RedirectUri = "https://client/callback"
});
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldNotBeEmpty();
await _pipeline.LogoutAsync();
- ( await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
+ (await _grantStore.GetAllAsync(new PersistedGrantFilter { SubjectId = "alice" }, _ct)).ShouldBeEmpty();
}
[Fact]
diff --git a/identity-server/test/IdentityServer.UnitTests/Services/Default/DefaultRefreshTokenServiceTests.cs b/identity-server/test/IdentityServer.UnitTests/Services/Default/DefaultRefreshTokenServiceTests.cs
index 8318cdc80..b8ad52437 100644
--- a/identity-server/test/IdentityServer.UnitTests/Services/Default/DefaultRefreshTokenServiceTests.cs
+++ b/identity-server/test/IdentityServer.UnitTests/Services/Default/DefaultRefreshTokenServiceTests.cs
@@ -47,7 +47,7 @@ public class DefaultRefreshTokenServiceTests
var client = new Client();
var accessToken = new Token();
- var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = accessToken, Client = client });
+ var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = accessToken, Client = client }, _ct);
(await _store.GetRefreshTokenAsync(handle, _ct)).ShouldNotBeNull();
}
@@ -63,7 +63,7 @@ public class DefaultRefreshTokenServiceTests
AbsoluteRefreshTokenLifetime = 10
};
- var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client });
+ var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client }, _ct);
var refreshToken = (await _store.GetRefreshTokenAsync(handle, _ct));
@@ -83,7 +83,7 @@ public class DefaultRefreshTokenServiceTests
AbsoluteRefreshTokenLifetime = 10
};
- var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client });
+ var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client }, _ct);
var refreshToken = (await _store.GetRefreshTokenAsync(handle, _ct));
@@ -102,7 +102,7 @@ public class DefaultRefreshTokenServiceTests
SlidingRefreshTokenLifetime = 10
};
- var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client });
+ var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = new Token(), Client = client }, _ct);
var refreshToken = (await _store.GetRefreshTokenAsync(handle, _ct));
@@ -127,7 +127,7 @@ public class DefaultRefreshTokenServiceTests
var handle = await _store.StoreRefreshTokenAsync(refreshToken, _ct);
- (await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }))
+ (await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct))
.ShouldNotBeNull()
.ShouldNotBe(handle);
}
@@ -153,7 +153,7 @@ public class DefaultRefreshTokenServiceTests
}, _ct);
var refreshToken = await _store.GetRefreshTokenAsync(handle, _ct);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
newHandle.ShouldBe(handle);
@@ -184,7 +184,7 @@ public class DefaultRefreshTokenServiceTests
}, _ct);
var refreshToken = await _store.GetRefreshTokenAsync(handle, _ct);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
newHandle.ShouldBe(handle);
@@ -215,7 +215,7 @@ public class DefaultRefreshTokenServiceTests
}, _ct);
var refreshToken = await _store.GetRefreshTokenAsync(handle, _ct);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
newHandle.ShouldBe(handle);
@@ -248,7 +248,7 @@ public class DefaultRefreshTokenServiceTests
}, _ct);
var refreshToken = await _store.GetRefreshTokenAsync(handle, _ct);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
newHandle.ShouldNotBeNull().ShouldNotBe(handle);
@@ -281,7 +281,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
var oldToken = await _store.GetRefreshTokenAsync(handle, _ct);
var newToken = await _store.GetRefreshTokenAsync(newHandle, _ct);
@@ -316,7 +316,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client });
+ var newHandle = await _subject.UpdateRefreshTokenAsync(new RefreshTokenUpdateRequest { Handle = handle, RefreshToken = refreshToken, Client = client }, _ct);
var oldToken = await _store.GetRefreshTokenAsync(handle, _ct);
var newToken = await _store.GetRefreshTokenAsync(newHandle, _ct);
@@ -337,7 +337,7 @@ public class DefaultRefreshTokenServiceTests
RefreshTokenUsage = TokenUsage.OneTimeOnly
};
- var result = await _subject.ValidateRefreshTokenAsync("invalid", client);
+ var result = await _subject.ValidateRefreshTokenAsync("invalid", client, _ct);
result.IsError.ShouldBeTrue();
}
@@ -364,7 +364,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync(handle, client);
+ var result = await _subject.ValidateRefreshTokenAsync(handle, client, _ct);
result.IsError.ShouldBeTrue();
}
@@ -392,7 +392,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync(handle, client);
+ var result = await _subject.ValidateRefreshTokenAsync(handle, client, _ct);
result.IsError.ShouldBeTrue();
}
@@ -420,7 +420,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow.AddSeconds(20);
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync(handle, client);
+ var result = await _subject.ValidateRefreshTokenAsync(handle, client, _ct);
result.IsError.ShouldBeTrue();
}
@@ -449,7 +449,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync(handle, client);
+ var result = await _subject.ValidateRefreshTokenAsync(handle, client, _ct);
result.IsError.ShouldBeTrue();
}
@@ -477,7 +477,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync(handle, client);
+ var result = await _subject.ValidateRefreshTokenAsync(handle, client, _ct);
result.IsError.ShouldBeFalse();
}
@@ -506,7 +506,7 @@ public class DefaultRefreshTokenServiceTests
var now = DateTime.UtcNow;
_timeProvider.SetUtcNow(now);
- var result = await _subject.ValidateRefreshTokenAsync("key", client);
+ var result = await _subject.ValidateRefreshTokenAsync("key", client, _ct);
result.IsError.ShouldBeFalse();
}