示例#1
0
 private static void SetHttpsAndUrls(KestrelServerOptions kestrelOptions, IWireMockMiddlewareOptions wireMockMiddlewareOptions, IEnumerable <HostUrlDetails> urlDetails)
 {
     foreach (var urlDetail in urlDetails)
     {
         if (urlDetail.IsHttps)
         {
             kestrelOptions.Listen(System.Net.IPAddress.Any, urlDetail.Port, listenOptions =>
             {
                 if (wireMockMiddlewareOptions.CustomCertificateDefined)
                 {
                     listenOptions.UseHttps(CertificateLoader.LoadCertificate(
                                                wireMockMiddlewareOptions.X509StoreName,
                                                wireMockMiddlewareOptions.X509StoreLocation,
                                                wireMockMiddlewareOptions.X509ThumbprintOrSubjectName,
                                                wireMockMiddlewareOptions.X509CertificateFilePath,
                                                wireMockMiddlewareOptions.X509CertificatePassword,
                                                urlDetail.Host)
                                            );
                 }
                 else
                 {
                     listenOptions.UseHttps();
                 }
             });
         }
         else
         {
             kestrelOptions.Listen(System.Net.IPAddress.Any, urlDetail.Port);
         }
     }
 }
示例#2
0
        public GlobalExceptionMiddleware(Next next, IWireMockMiddlewareOptions options, IOwinResponseMapper responseMapper) : base(next)
        {
            Check.NotNull(options, nameof(options));
            Check.NotNull(responseMapper, nameof(responseMapper));

            _options        = options;
            _responseMapper = responseMapper;
        }
示例#3
0
        public AspNetCoreSelfHost([NotNull] IWireMockMiddlewareOptions wireMockMiddlewareOptions, [NotNull] HostUrlOptions urlOptions)
        {
            Check.NotNull(wireMockMiddlewareOptions, nameof(wireMockMiddlewareOptions));
            Check.NotNull(urlOptions, nameof(urlOptions));

            _logger = wireMockMiddlewareOptions.Logger ?? new WireMockConsoleLogger();

            _wireMockMiddlewareOptions = wireMockMiddlewareOptions;
            _urlOptions = urlOptions;
        }
        /// <inheritdoc cref="IOwinRequestMapper.MapAsync"/>
        public async Task <RequestMessage> MapAsync(IRequest request, IWireMockMiddlewareOptions options)
        {
            (UrlDetails urldetails, string clientIP) = ParseRequest(request);

            string method = request.Method;

            Dictionary <string, string[]> headers = null;
            IEnumerable <string>          contentEncodingHeader = null;

            if (request.Headers.Any())
            {
                headers = new Dictionary <string, string[]>();
                foreach (var header in request.Headers)
                {
                    headers.Add(header.Key, header.Value);

                    if (string.Equals(header.Key, HttpKnownHeaderNames.ContentEncoding, StringComparison.OrdinalIgnoreCase))
                    {
                        contentEncodingHeader = header.Value;
                    }
                }
            }

            IDictionary <string, string> cookies = null;

            if (request.Cookies.Any())
            {
                cookies = new Dictionary <string, string>();
                foreach (var cookie in request.Cookies)
                {
                    cookies.Add(cookie.Key, cookie.Value);
                }
            }

            BodyData body = null;

            if (request.Body != null && BodyParser.ShouldParseBody(method, options.AllowBodyForAllHttpMethods == true))
            {
                var bodyParserSettings = new BodyParserSettings
                {
                    Stream                   = request.Body,
                    ContentType              = request.ContentType,
                    DeserializeJson          = !options.DisableJsonBodyParsing.GetValueOrDefault(false),
                    ContentEncoding          = contentEncodingHeader?.FirstOrDefault(),
                    DecompressGZipAndDeflate = !options.DisableRequestBodyDecompressing.GetValueOrDefault(false)
                };

                body = await BodyParser.Parse(bodyParserSettings);
            }

            return(new RequestMessage(urldetails, method, clientIP, body, headers, cookies)
            {
                DateTime = DateTime.UtcNow
            });
        }
        public WireMockMiddleware(Next next, IWireMockMiddlewareOptions options, IOwinRequestMapper requestMapper, IOwinResponseMapper responseMapper, IMappingMatcher mappingMatcher)
        {
            Check.NotNull(options, nameof(options));
            Check.NotNull(requestMapper, nameof(requestMapper));
            Check.NotNull(responseMapper, nameof(responseMapper));
            Check.NotNull(mappingMatcher, nameof(mappingMatcher));

            _options        = options;
            _requestMapper  = requestMapper;
            _responseMapper = responseMapper;
            _mappingMatcher = mappingMatcher;
        }
示例#6
0
        public OwinSelfHost([NotNull] IWireMockMiddlewareOptions options, [NotNull] HostUrlOptions urlOptions)
        {
            Check.NotNull(options, nameof(options));
            Check.NotNull(urlOptions, nameof(urlOptions));

            _options = options;
            _logger  = options.Logger ?? new WireMockConsoleLogger();

            foreach (var detail in urlOptions.GetDetails())
            {
                Urls.Add(detail.Url);
                Ports.Add(detail.Port);
            }
        }
        public IgnorePrefixesMiddleware(OwinMiddleware p_next, IWireMockMiddlewareOptions p_options) : base(p_next)
        {
            Check.NotNull(p_options, nameof(p_options));

            m_matchers = new List <WildcardMatcher>();
            m_options  = p_options;
            if (m_options.IgnorePrefixURLs != null)
            {
                foreach (string prefix in m_options.IgnorePrefixURLs)
                {
                    m_matchers.Add(new WildcardMatcher(prefix, true));
                }
            }
        }
        public OwinSelfHost([NotNull] IWireMockMiddlewareOptions options, [NotNull] params string[] uriPrefixes)
        {
            Check.NotNull(options, nameof(options));
            Check.NotNullOrEmpty(uriPrefixes, nameof(uriPrefixes));

            _logger = options.Logger ?? new WireMockConsoleLogger();

            foreach (string uriPrefix in uriPrefixes)
            {
                Urls.Add(uriPrefix);

                PortUtils.TryExtract(uriPrefix, out string protocol, out string host, out int port);
                Ports.Add(port);
            }

            _options = options;
        }
示例#9
0
        /// <inheritdoc cref="IOwinRequestMapper.MapAsync"/>
        public async Task <RequestMessage> MapAsync(IRequest request, IWireMockMiddlewareOptions options)
        {
            (UrlDetails urldetails, string clientIP) = ParseRequest(request);

            string method = request.Method;

            Dictionary <string, string[]> headers = null;

            if (request.Headers.Any())
            {
                headers = new Dictionary <string, string[]>();
                foreach (var header in request.Headers)
                {
                    headers.Add(header.Key, header.Value);
                }
            }

            IDictionary <string, string> cookies = null;

            if (request.Cookies.Any())
            {
                cookies = new Dictionary <string, string>();
                foreach (var cookie in request.Cookies)
                {
                    cookies.Add(cookie.Key, cookie.Value);
                }
            }

            BodyData body = null;

            if (request.Body != null && BodyParser.ShouldParseBody(method, options.AllowBodyForAllHttpMethods == true))
            {
                body = await BodyParser.Parse(request.Body, request.ContentType, !options.DisableJsonBodyParsing.GetValueOrDefault(false));
            }

            return(new RequestMessage(urldetails, method, clientIP, body, headers, cookies)
            {
                DateTime = DateTime.UtcNow
            });
        }
示例#10
0
 private static void SetHttpsAndUrls(KestrelServerOptions options, IWireMockMiddlewareOptions wireMockMiddlewareOptions, IEnumerable <HostUrlDetails> urlDetails)
 {
     foreach (var urlDetail in urlDetails)
     {
         if (urlDetail.IsHttps)
         {
             if (wireMockMiddlewareOptions.CustomCertificateDefined)
             {
                 options.UseHttps(CertificateLoader.LoadCertificate(
                                      wireMockMiddlewareOptions.X509StoreName,
                                      wireMockMiddlewareOptions.X509StoreLocation,
                                      wireMockMiddlewareOptions.X509ThumbprintOrSubjectName,
                                      wireMockMiddlewareOptions.X509CertificateFilePath,
                                      wireMockMiddlewareOptions.X509CertificatePassword,
                                      urlDetail.Host)
                                  );
             }
             else
             {
                 options.UseHttps(PublicCertificateHelper.GetX509Certificate2());
             }
         }
     }
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="options">The IWireMockMiddlewareOptions.</param>
        public OwinResponseMapper(IWireMockMiddlewareOptions options)
        {
            Check.NotNull(options, nameof(options));

            _options = options;
        }
示例#12
0
        public MappingMatcher(IWireMockMiddlewareOptions options)
        {
            Check.NotNull(options, nameof(options));

            _options = options;
        }