コード例 #1
0
 public TracingHandlerFactory(
     IServiceTracer tracer,
     IRequestScopedDataRepository repo)
 {
     _repo   = repo;
     _tracer = tracer;
 }
コード例 #2
0
 public TracingHandlerFactory(
     IServiceProvider services,
     IRequestScopedDataRepository repo)
 {
     _repo   = repo;
     _tracer = services.GetService <ITracer>();
 }
コード例 #3
0
ファイル: Placeholders.cs プロジェクト: zgxy9931/Ocelot
        public Placeholders(IBaseUrlFinder finder, IRequestScopedDataRepository repo)
        {
            _repo = repo;
            _finder = finder;
            _placeholders = new Dictionary<string, Func<Response<string>>>();
            _placeholders.Add("{BaseUrl}", () => new OkResponse<string>(_finder.Find()));
            _placeholders.Add("{TraceId}", () => {
                var traceId = _repo.Get<string>("TraceId");
                if(traceId.IsError)
                {
                    return new ErrorResponse<string>(traceId.Errors);
                }

                return new OkResponse<string>(traceId.Data);
            });

            _requestPlaceholders = new Dictionary<string, Func<HttpRequestMessage, string>>();
            _requestPlaceholders.Add("{DownstreamBaseUrl}", x => {
                var downstreamUrl = $"{x.RequestUri.Scheme}://{x.RequestUri.Host}";

                if(x.RequestUri.Port != 80 && x.RequestUri.Port != 443)
                {
                    downstreamUrl = $"{downstreamUrl}:{x.RequestUri.Port}";
                }

                return $"{downstreamUrl}/";
            });
        }
コード例 #4
0
 public ReRouteRequestIdMiddleware(OcelotRequestDelegate next,
                                   IOcelotLoggerFactory loggerFactory,
                                   IRequestScopedDataRepository requestScopedDataRepository)
     : base(loggerFactory.CreateLogger <ReRouteRequestIdMiddleware>())
 {
     _next = next;
     _requestScopedDataRepository = requestScopedDataRepository;
 }
コード例 #5
0
 public ExceptionHandlerMiddleware(RequestDelegate next,
                                   IOcelotLoggerFactory loggerFactory,
                                   IRequestScopedDataRepository repo)
     : base(loggerFactory.CreateLogger <ExceptionHandlerMiddleware>())
 {
     _next = next;
     _repo = repo;
 }
コード例 #6
0
 public TracerMiddleware(RequestDelegate next, IRequestScopedDataRepository requestScopedDataRepository, ITracerHandler tracer, TracerOptions tracerOptions)
 {
     _next = next;
     _requestScopedDataRepository = requestScopedDataRepository;
     _tracer = tracer;
     TracerKeys.Environment = tracerOptions.Environment;
     TracerKeys.SystemName  = tracerOptions.SystemName;
 }
コード例 #7
0
 public OcelotHttpTracingHandler(
     IServiceTracer tracer,
     IRequestScopedDataRepository repo,
     HttpMessageHandler httpMessageHandler = null)
 {
     _repo        = repo;
     _tracer      = tracer ?? throw new ArgumentNullException(nameof(tracer));
     InnerHandler = httpMessageHandler ?? new HttpClientHandler();
 }
コード例 #8
0
 public TracerHandler(IRequestScopedDataRepository requestScopedDataRepository,
                      IJsonHelper jsonHelper,
                      ITracerStore tracerStore,
                      IOptions <TracerOptions> tracerOptions)
 {
     _requestScopedDataRepository = requestScopedDataRepository;
     _tracerStore   = tracerStore;
     _jsonHelper    = jsonHelper;
     _tracerOptions = tracerOptions.Value;
 }
コード例 #9
0
 public HttpRequesterMiddleware(RequestDelegate next,
                                IOcelotLoggerFactory loggerFactory,
                                IHttpRequester requester,
                                IRequestScopedDataRepository requestScopedDataRepository)
     : base(requestScopedDataRepository)
 {
     _next      = next;
     _requester = requester;
     _logger    = loggerFactory.CreateLogger <HttpRequesterMiddleware>();
 }
コード例 #10
0
 public QueryStringBuilderMiddleware(RequestDelegate next,
                                     IOcelotLoggerFactory loggerFactory,
                                     IRequestScopedDataRepository requestScopedDataRepository,
                                     IAddQueriesToRequest addQueriesToRequest)
     : base(requestScopedDataRepository)
 {
     _next = next;
     _addQueriesToRequest = addQueriesToRequest;
     _logger = loggerFactory.CreateLogger <QueryStringBuilderMiddleware>();
 }
コード例 #11
0
 public AuthenticationMiddleware(RequestDelegate next,
                                 IApplicationBuilder app,
                                 IRequestScopedDataRepository requestScopedDataRepository,
                                 IOcelotLoggerFactory loggerFactory)
     : base(requestScopedDataRepository)
 {
     _next   = next;
     _app    = app;
     _logger = loggerFactory.CreateLogger <AuthenticationMiddleware>();
 }
コード例 #12
0
 public AuthorisationMiddleware(RequestDelegate next,
                                IRequestScopedDataRepository requestScopedDataRepository,
                                IAuthoriser authoriser,
                                IOcelotLoggerFactory loggerFactory)
     : base(requestScopedDataRepository)
 {
     _next       = next;
     _authoriser = authoriser;
     _logger     = loggerFactory.CreateLogger <AuthorisationMiddleware>();
 }
コード例 #13
0
 public DownstreamRequestInitialiserMiddleware(RequestDelegate next,
                                               IOcelotLoggerFactory loggerFactory,
                                               IRequestScopedDataRepository requestScopedDataRepository,
                                               Mapper.IRequestMapper requestMapper)
     : base(requestScopedDataRepository)
 {
     _next          = next;
     _logger        = loggerFactory.CreateLogger <DownstreamRequestInitialiserMiddleware>();
     _requestMapper = requestMapper;
 }
コード例 #14
0
 public ExceptionHandlerMiddleware(OcelotRequestDelegate next,
                                   IOcelotLoggerFactory loggerFactory,
                                   IOcelotConfigurationProvider provider,
                                   IRequestScopedDataRepository repo)
 {
     _provider = provider;
     _repo     = repo;
     _next     = next;
     _logger   = loggerFactory.CreateLogger <ExceptionHandlerMiddleware>();
 }
コード例 #15
0
 public ExceptionHandlerMiddleware(OcelotRequestDelegate next,
                                   IOcelotLoggerFactory loggerFactory,
                                   IInternalConfigurationRepository configRepo,
                                   IRequestScopedDataRepository repo)
     : base(loggerFactory.CreateLogger <ExceptionHandlerMiddleware>())
 {
     _configRepo = configRepo;
     _repo       = repo;
     _next       = next;
 }
コード例 #16
0
 public HttpRequestHeadersBuilderMiddleware(RequestDelegate next,
                                            IOcelotLoggerFactory loggerFactory,
                                            IRequestScopedDataRepository requestScopedDataRepository,
                                            IAddHeadersToRequest addHeadersToRequest)
     : base(requestScopedDataRepository)
 {
     _next = next;
     _addHeadersToRequest = addHeadersToRequest;
     _logger = loggerFactory.CreateLogger <HttpRequestHeadersBuilderMiddleware>();
 }
コード例 #17
0
 public DownstreamRouteFinderMiddleware(RequestDelegate next,
                                        IOcelotLoggerFactory loggerFactory,
                                        IDownstreamRouteFinder downstreamRouteFinder,
                                        IRequestScopedDataRepository requestScopedDataRepository)
     : base(requestScopedDataRepository)
 {
     _next = next;
     _downstreamRouteFinder = downstreamRouteFinder;
     _logger = loggerFactory.CreateLogger <DownstreamRouteFinderMiddleware>();
 }
コード例 #18
0
 public OutputCacheMiddleware(RequestDelegate next,
                              IOcelotLoggerFactory loggerFactory,
                              IRequestScopedDataRepository scopedDataRepository,
                              IOcelotCache <HttpResponseMessage> outputCache)
     : base(scopedDataRepository)
 {
     _next        = next;
     _outputCache = outputCache;
     _logger      = loggerFactory.CreateLogger <OutputCacheMiddleware>();
 }
コード例 #19
0
 public LoadBalancingMiddleware(RequestDelegate next,
                                IOcelotLoggerFactory loggerFactory,
                                IRequestScopedDataRepository requestScopedDataRepository,
                                ILoadBalancerHouse loadBalancerHouse)
     : base(requestScopedDataRepository)
 {
     _next              = next;
     _logger            = loggerFactory.CreateLogger <QueryStringBuilderMiddleware>();
     _loadBalancerHouse = loadBalancerHouse;
 }
コード例 #20
0
 public ClientRateLimitMiddleware(RequestDelegate next,
                                  IOcelotLoggerFactory loggerFactory,
                                  IRequestScopedDataRepository requestScopedDataRepository,
                                  IRateLimitCounterHandler counterHandler)
     : base(requestScopedDataRepository)
 {
     _next           = next;
     _logger         = loggerFactory.CreateLogger <ClientRateLimitMiddleware>();
     _counterHandler = counterHandler;
     _processor      = new ClientRateLimitProcessor(counterHandler);
 }
コード例 #21
0
 public ExceptionHandlerMiddleware(RequestDelegate next,
                                   IOcelotLoggerFactory loggerFactory,
                                   IRequestScopedDataRepository requestScopedDataRepository,
                                   IOcelotConfigurationProvider configProvider)
     : base(requestScopedDataRepository)
 {
     _configProvider = configProvider;
     _next           = next;
     _requestScopedDataRepository = requestScopedDataRepository;
     _logger = loggerFactory.CreateLogger <ExceptionHandlerMiddleware>();
 }
コード例 #22
0
 public ResponderMiddleware(RequestDelegate next,
                            IHttpResponder responder,
                            IOcelotLoggerFactory loggerFactory,
                            IRequestScopedDataRepository requestScopedDataRepository,
                            IErrorsToHttpStatusCodeMapper codeMapper)
     : base(requestScopedDataRepository)
 {
     _next       = next;
     _responder  = responder;
     _codeMapper = codeMapper;
     _logger     = loggerFactory.CreateLogger <ResponderMiddleware>();
 }
コード例 #23
0
 public HttpRequestBuilderMiddleware(RequestDelegate next,
                                     IOcelotLoggerFactory loggerFactory,
                                     IRequestScopedDataRepository requestScopedDataRepository,
                                     IRequestCreator requestCreator,
                                     IQosProviderHouse qosProviderHouse)
     : base(requestScopedDataRepository)
 {
     _next             = next;
     _requestCreator   = requestCreator;
     _qosProviderHouse = qosProviderHouse;
     _logger           = loggerFactory.CreateLogger <HttpRequestBuilderMiddleware>();
 }
コード例 #24
0
 public OutputCacheMiddleware(RequestDelegate next,
                              IOcelotLoggerFactory loggerFactory,
                              IRequestScopedDataRepository scopedDataRepository,
                              IOcelotCache <CachedResponse> outputCache,
                              IRegionCreator regionCreator)
     : base(scopedDataRepository)
 {
     _next          = next;
     _outputCache   = outputCache;
     _logger        = loggerFactory.CreateLogger <OutputCacheMiddleware>();
     _regionCreator = regionCreator;
 }
コード例 #25
0
 public DownstreamUrlCreatorMiddleware(RequestDelegate next,
                                       IOcelotLoggerFactory loggerFactory,
                                       IDownstreamPathPlaceholderReplacer replacer,
                                       IRequestScopedDataRepository requestScopedDataRepository,
                                       IUrlBuilder urlBuilder)
     : base(requestScopedDataRepository)
 {
     _next       = next;
     _replacer   = replacer;
     _urlBuilder = urlBuilder;
     _logger     = loggerFactory.CreateLogger <DownstreamUrlCreatorMiddleware>();
 }
コード例 #26
0
 public ErrorLogMiddleware(RequestDelegate next,
                           ILoggerFactory loggerFactory,
                           IErrorCodeStore errorCodeStore,
                           IRequestScopedDataRepository requestScopedDataRepository,
                           IJsonHelper jsonHelper)
 {
     _next           = next;
     _logger         = loggerFactory.CreateLogger <ErrorLogMiddleware>();
     _errorCodeStore = errorCodeStore;
     _requestScopedDataRepository = requestScopedDataRepository;
     _jsonHelper = jsonHelper;
 }
コード例 #27
0
 public HttpHeadersTransformationMiddleware(RequestDelegate next,
                                            IOcelotLoggerFactory loggerFactory,
                                            IRequestScopedDataRepository requestScopedDataRepository,
                                            IHttpContextRequestHeaderReplacer preReplacer,
                                            IHttpResponseHeaderReplacer postReplacer)
     : base(requestScopedDataRepository)
 {
     _next         = next;
     _postReplacer = postReplacer;
     _preReplacer  = preReplacer;
     _logger       = loggerFactory.CreateLogger <HttpHeadersTransformationMiddleware>();
 }
コード例 #28
0
 public AspDotNetLogger(ILogger logger, IRequestScopedDataRepository scopedDataRepository)
 {
     _logger = logger;
     _scopedDataRepository = scopedDataRepository;
     _func = (state, exception) =>
     {
         if (exception == null)
         {
             return(state);
         }
         else
         {
             return($"{state}, exception: {exception}");
         }
     };
 }
コード例 #29
0
ファイル: Placeholders.cs プロジェクト: zpc870921/Ocelot
        public Placeholders(IBaseUrlFinder finder, IRequestScopedDataRepository repo, IHttpContextAccessor httpContextAccessor)
        {
            _repo = repo;
            _httpContextAccessor = httpContextAccessor;
            _finder       = finder;
            _placeholders = new Dictionary <string, Func <Response <string> > >
            {
                { "{BaseUrl}", GetBaseUrl() },
                { "{TraceId}", GetTraceId() },
                { "{RemoteIpAddress}", GetRemoteIpAddress() }
            };

            _requestPlaceholders = new Dictionary <string, Func <DownstreamRequest, string> >
            {
                { "{DownstreamBaseUrl}", GetDownstreamBaseUrl() }
            };
        }
コード例 #30
0
 public WebApiTraceFilterAttribute(IRequestScopedDataRepository requestScopedDataRepository, IJsonHelper jsonHelper)
 {
     this.requestScopedDataRepository = requestScopedDataRepository;
     this.jsonHelper = jsonHelper;
 }