Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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();
            });
        }
Ejemplo n.º 8
0
        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());
        }
Ejemplo n.º 9
0
        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);
        }