public async Task TestInternalAuth(string goodKey, string requestKey, bool valid) { var options = new CrpcOptions { InternalKeys = new string[] { goodKey }, }; var middleware = new AuthMiddleware(_loggerFactory, Options.Create(options)); var context = new DefaultHttpContext(); middleware.SetAuthentication(AuthenticationType.AllowInternalAuthentication); context.Request.Headers.Add("Authorization", $"bearer {requestKey}"); if (valid) { await middleware.InvokeAsync(context, (ctx) => Task.CompletedTask); return; } var ex = await Assert.ThrowsAsync <CrpcException>(async() => { await middleware.InvokeAsync(context, (ctx) => Task.CompletedTask); }); Assert.Equal(CrpcCodes.Unauthorized, ex.Message); }
public async Task TestUnsafeNoAuth(string key) { var options = new CrpcOptions { InternalKeys = new string[] { key }, }; var middleware = new AuthMiddleware(_loggerFactory, Options.Create(options)); var context = new DefaultHttpContext(); middleware.SetAuthentication(AuthenticationType.UnsafeNoAuthentication); context.Request.Headers.Add("Authorization", $"bearer {key}"); await middleware.InvokeAsync(context, (ctx) => Task.CompletedTask); }