Esempio n. 1
0
    private IOptionsMonitor <HttpLoggingOptions> CreateOptionsAccessor()
    {
        var options         = new HttpLoggingOptions();
        var optionsAccessor = Mock.Of <IOptionsMonitor <HttpLoggingOptions> >(o => o.CurrentValue == options);

        return(optionsAccessor);
    }
    public void CanClearMediaTypes()
    {
        var options = new HttpLoggingOptions();

        options.MediaTypeOptions.Clear();
        Assert.Empty(options.MediaTypeOptions.MediaTypeStates);
    }
 public UpgradeFeatureLoggingDecorator(IHttpUpgradeFeature innerUpgradeFeature, HttpResponse response, HttpLoggingOptions options, ILogger logger)
 {
     _innerUpgradeFeature = innerUpgradeFeature ?? throw new ArgumentNullException(nameof(innerUpgradeFeature));
     _response            = response ?? throw new ArgumentNullException(nameof(response));
     _options             = options ?? throw new ArgumentNullException(nameof(options));
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
 }
    public void HeadersAreCaseInsensitive()
    {
        var options = new HttpLoggingOptions();

        options.RequestHeaders.Clear();
        options.RequestHeaders.Add("Test");
        options.RequestHeaders.Add("test");

        Assert.Single(options.RequestHeaders);
    }
Esempio n. 5
0
        /// <summary>
        /// This will affect performance.
        /// This should be called before anything else, including error handling, as it needs to create a new response stream if response body logging is enabled.
        /// </summary>
        public static IApplicationBuilder UseHttpLogging(this IApplicationBuilder builder, Action <HttpLoggingOptions> setupAction = null)
        {
            var options = new HttpLoggingOptions();

            setupAction?.Invoke(options);

            return(builder
                   .UseRequestLogging(options.Request)
                   .UseResponseLogging(options.Response));
        }
    public void CanAddMediaTypesWithCharset()
    {
        var options = new HttpLoggingOptions();

        options.MediaTypeOptions.AddText("test/*; charset=ascii");

        var defaultMediaTypes = options.MediaTypeOptions.MediaTypeStates;

        Assert.Equal(6, defaultMediaTypes.Count);

        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.Encoding.WebName.Equals("us-ascii"));
    }
    public void CanAddMediaTypesString()
    {
        var options = new HttpLoggingOptions();

        options.MediaTypeOptions.AddText("test/*");

        var defaultMediaTypes = options.MediaTypeOptions.MediaTypeStates;

        Assert.Equal(6, defaultMediaTypes.Count);

        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("test/*"));
    }
    public void DefaultsMediaTypes()
    {
        var options           = new HttpLoggingOptions();
        var defaultMediaTypes = options.MediaTypeOptions.MediaTypeStates;

        Assert.Equal(5, defaultMediaTypes.Count);

        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("application/json"));
        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("application/*+json"));
        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("application/xml"));
        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("application/*+xml"));
        Assert.Contains(defaultMediaTypes, w => w.MediaTypeHeaderValue.MediaType.Equals("text/*"));
    }
Esempio n. 9
0
 internal ResponseBufferingStream(IHttpResponseBodyFeature innerBodyFeature,
                                  int limit,
                                  ILogger logger,
                                  HttpContext context,
                                  List <MediaTypeState> encodings,
                                  HttpLoggingOptions options)
     : base(innerBodyFeature.Stream, logger)
 {
     _innerBodyFeature = innerBodyFeature;
     _innerStream      = innerBodyFeature.Stream;
     _limit            = limit;
     _context          = context;
     _encodings        = encodings;
     _options          = options;
 }
Esempio n. 10
0
    public static void LogResponseHeaders(HttpResponse response, HttpLoggingOptions options, ILogger logger)
    {
        var list = new List <KeyValuePair <string, object?> >(
            response.Headers.Count + DefaultResponseFieldsMinusHeaders);

        if (options.LoggingFields.HasFlag(HttpLoggingFields.ResponseStatusCode))
        {
            list.Add(new KeyValuePair <string, object?>(nameof(response.StatusCode), response.StatusCode));
        }

        if (options.LoggingFields.HasFlag(HttpLoggingFields.ResponseHeaders))
        {
            FilterHeaders(list, response.Headers, options._internalResponseHeaders);
        }

        var httpResponseLog = new HttpResponseLog(list);

        logger.ResponseLog(httpResponseLog);
    }