public async Task OnExecuting(HttpPiplineRequest context) { await semaphoreSlim.WaitAsync(); try { if (string.IsNullOrEmpty(ClientId) || string.IsNullOrEmpty(Secret) || Token == null || Token.Expires == null) { return; } if (Token.Expires.Value <= DateTime.Now) { if (string.IsNullOrEmpty(Token.RefreshToken)) { Token = await AuthenticationExtensions.AuthAsync(context.Executor.GetEndpoint("auth"), ClientId, Secret); } else { Token = await AuthenticationExtensions.AuthAsync(context.Executor.GetEndpoint("auth"), ClientId, Secret, Token.RefreshToken); } } context.Request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Token?.AccessToken ?? string.Empty); } finally { semaphoreSlim.Release(); } }
public async Task OnExecuting(HttpPiplineRequest context) { Assert.NotNull(context); Assert.NotNull(context.Command); Assert.NotNull(context.Executor); Assert.NotNull(context.Parameters); Assert.NotNull(context.Request); Executing = true; }