Esempio n. 1
0
        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            if (string.IsNullOrWhiteSpace(DWKitRuntime.IntegrationApiKey))
            {
                context.Result = new UnauthorizedObjectResult("IntegrationApiKey must have value. Set it in DWKit settings");
                return;
            }

            context.HttpContext.Request.EnableBuffering();
            var queryDictionary = await IntegrationApiHttp.GetParametersFromRequest(context.HttpContext.Request);

            context.HttpContext.Request.Body.Position = 0;
            queryDictionary.TryGetValue(IntegrationApiKeys.ApiKey, out var queryKey);
            if (await Authenticate(queryKey).ConfigureAwait(false))
            {
                return;
            }

            var(_, headerValue) = context.HttpContext.Request.Headers.FirstOrDefault(header =>
                                                                                     header.Key.Equals(IntegrationApiKeys.HeaderApiKey, StringComparison.OrdinalIgnoreCase));
            if (!await Authenticate(headerValue.ToString()).ConfigureAwait(false))
            {
                context.Result = new UnauthorizedObjectResult(Message);
            }
        }
Esempio n. 2
0
        public async Task <ActionResult> FormApi()
        {
            try
            {
                var result = await IntegrationApiHttp.Process(HttpContext.Request);

                return(Json(result));
            }
            catch (Exception ex)
            {
                return(Json(new IntegrationApiFailResponse(ex)));
            }
        }
Esempio n. 3
0
        public async Task <ActionResult> GetSwaggerFile()
        {
            try
            {
                var swagger = await IntegrationApiHttp.GetSwaggerSpecsAsync(HttpContext.Request);

                var filename    = "dwkit.yaml";
                var contentType = "application/yaml";

                return(File(Encoding.UTF8.GetBytes(swagger), contentType, filename));
            }
            catch (Exception ex)
            {
                return(Json(new FailResponse(ex)));
            }
        }