public void SetsMaxRequestBodySizeToNull() { // Arrange var disableRequestSizeLimitResourceFilter = new DisableRequestSizeLimitFilter(NullLoggerFactory.Instance); var authorizationFilterContext = CreateAuthorizationFilterContext(new IFilterMetadata[] { disableRequestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); authorizationFilterContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act disableRequestSizeLimitResourceFilter.OnAuthorization(authorizationFilterContext); // Assert Assert.Null(httpMaxRequestBodySize.MaxRequestBodySize); }
public void SetsMaxRequestBodySize() { // Arrange var requestSizeLimitResourceFilter = new RequestSizeLimitFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilter.Bytes = 12345; var authorizationFilterContext = CreateAuthorizationFilterContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); authorizationFilterContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnAuthorization(authorizationFilterContext); // Assert Assert.Equal(12345, httpMaxRequestBodySize.MaxRequestBodySize); }
public void Configure(IApplicationBuilder app) { app.UseDeveloperExceptionPage(); app.Use((httpContext, next) => { var testHttpMaxRequestBodySizeFeature = new TestHttpMaxRequestBodySizeFeature(); httpContext.Features.Set<IHttpMaxRequestBodySizeFeature>( testHttpMaxRequestBodySizeFeature); httpContext.Request.Body = new RequestBodySizeCheckingStream( httpContext.Request.Body, testHttpMaxRequestBodySizeFeature); return next(); }); app.UseMvcWithDefaultRoute(); }
public void SkipsWhenOverridden() { // Arrange var disableRequestSizeLimitResourceFilter = new DisableRequestSizeLimitResourceFilter(NullLoggerFactory.Instance); var disableRequestSizeLimitResourceFilterFinal = new DisableRequestSizeLimitResourceFilter(NullLoggerFactory.Instance); var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { disableRequestSizeLimitResourceFilter, disableRequestSizeLimitResourceFilterFinal }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act disableRequestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); disableRequestSizeLimitResourceFilterFinal.OnResourceExecuting(resourceExecutingContext); // Assert Assert.Null(httpMaxRequestBodySize.MaxRequestBodySize); Assert.Equal(1, httpMaxRequestBodySize.Count); }
public void LogsMaxRequestBodySizeSetToNull() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var disableRequestSizeLimitResourceFilter = new DisableRequestSizeLimitFilter(loggerFactory); var authorizationFilterContext = CreateAuthorizationFilterContext(new IFilterMetadata[] { disableRequestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); authorizationFilterContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act disableRequestSizeLimitResourceFilter.OnAuthorization(authorizationFilterContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"The request body size limit has been disabled.", write.State.ToString()); }
public void LogsFeatureIsReadOnly() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var disableRequestSizeLimitResourceFilter = new DisableRequestSizeLimitFilter(loggerFactory); var authorizationFilterContext = CreateAuthorizationFilterContext(new IFilterMetadata[] { disableRequestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); httpMaxRequestBodySize.IsReadOnly = true; authorizationFilterContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act disableRequestSizeLimitResourceFilter.OnAuthorization(authorizationFilterContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"A request body size limit could not be applied. The IHttpRequestBodySizeFeature for the server is read-only.", write.State.ToString()); }
public void Configure(IApplicationBuilder app) { app.UseDeveloperExceptionPage(); app.Use((httpContext, next) => { var testHttpMaxRequestBodySizeFeature = new TestHttpMaxRequestBodySizeFeature(); httpContext.Features.Set <IHttpMaxRequestBodySizeFeature>( testHttpMaxRequestBodySizeFeature); httpContext.Request.Body = new RequestBodySizeCheckingStream( httpContext.Request.Body, testHttpMaxRequestBodySizeFeature); return(next()); }); app.UseRouting(routes => { routes.MapDefaultControllerRoute(); routes.MapRazorPages(); }); }
public void LogsMaxRequestBodySizeSet() { // Arrange var sink = new TestSink(); var loggerFactory = new TestLoggerFactory(sink, enabled: true); var requestSizeLimitResourceFilter = new RequestSizeLimitResourceFilter(loggerFactory); requestSizeLimitResourceFilter.Bytes = 12345; var resourceExecutingContext = CreateResourceExecutingContext(new IFilterMetadata[] { requestSizeLimitResourceFilter }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); resourceExecutingContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnResourceExecuting(resourceExecutingContext); // Assert var write = Assert.Single(sink.Writes); Assert.Equal($"The maximum request body size has been set to 12345.", write.State.ToString()); }
public void SkipsWhenOverridden() { // Arrange var requestSizeLimitResourceFilter = new RequestSizeLimitFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilter.Bytes = 12345; var requestSizeLimitResourceFilterFinal = new RequestSizeLimitFilter(NullLoggerFactory.Instance); requestSizeLimitResourceFilterFinal.Bytes = 0; var authorizationFilterContext = CreateauthorizationFilterContext( new IFilterMetadata[] { requestSizeLimitResourceFilter, requestSizeLimitResourceFilterFinal }); var httpMaxRequestBodySize = new TestHttpMaxRequestBodySizeFeature(); authorizationFilterContext.HttpContext.Features.Set <IHttpMaxRequestBodySizeFeature>(httpMaxRequestBodySize); // Act requestSizeLimitResourceFilter.OnAuthorization(authorizationFilterContext); requestSizeLimitResourceFilterFinal.OnAuthorization(authorizationFilterContext); // Assert Assert.Equal(0, httpMaxRequestBodySize.MaxRequestBodySize); Assert.Equal(1, httpMaxRequestBodySize.Count); }