Ejemplo n.º 1
0
        public override async Task <HttpResponseMessage> HandleRequest(HttpRequestMessage request, CancellationToken cancellationToken) // ToDo: Ajustei a ordem dos modificadores.
        {
            if (!_authService.NeedAuthentication())
            {
                return(await _nextHandler.HandleRequest(request, cancellationToken));
            }

            if (!_authService.ValidateApiKey(request))
            {
                var error = new ForbiddenError();
                return(MakeResponse(error.HttpErrorResponse, error.HttpErrorStatusCode)); // ToDo: Removi o código não necessário.
            }

            return(await _nextHandler.HandleRequest(request, cancellationToken));
        }
Ejemplo n.º 2
0
        public override async Task <HttpResponseMessage> HandleRequest(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var queryParameters = request.GetQueryNameValuePairs().ToDictionary(kv => kv.Key, kv => kv.Value, StringComparer.OrdinalIgnoreCase);

            queryParameters.TryGetValue("apikey", out var apiKey);

            if (!_authService.NeedAuthentication())
            {
                return(await _nextHandler.HandleRequest(request, cancellationToken));
            }

            if (!_authService.ValidateApiKey(apiKey))
            {
                var error = new ForbiddenError(apiKey);
                _hcConfig.Logger?.LogException(error, _hcConfig.LoggerProperties);
                return(MakeResponse(error.HttpErrorResponse, error.HttpErrorStatusCode));
            }

            return(await _nextHandler.HandleRequest(request, cancellationToken));
        }