Example #1
0
        private async Task <AdditonalAudienceValidationResult> ValidateAudience(string addauds)
        {
            AdditonalAudienceValidationResult result =
                new AdditonalAudienceValidationResult();
            List <string> additionalAudience = addauds.Split(",").Select(c => c.Trim()).ToList();

            foreach (var aud in additionalAudience)
            {
                //Find API in resource store.
                var api = await _resources.FindApiResourceAsync(aud);

                if (api == null)
                {
                    _logger.LogWarn($"No API resource with that name '{aud}' found.");
                    result = new AdditonalAudienceValidationResult
                    {
                        IsError          = true,
                        Error            = "invalid_audience",
                        ErrorDescription = "Invalid Audience Passed"
                    };
                    break;
                }
                else
                {
                    result.IsError = false;
                }


                if (!api.Enabled)
                {
                    _logger.LogWarn($"API resource '{aud}' not enabled");
                    result = new AdditonalAudienceValidationResult
                    {
                        IsError          = true,
                        Error            = "invalid_audience",
                        ErrorDescription = "Audience not enabled"
                    };
                    break;
                }
                else
                {
                    result.IsError = false;
                }

                //API secret aren't set in KIWI, hence not validated.
            }

            //Is all apis are valid
            if (!result.IsError)
            {
                result = new AdditonalAudienceValidationResult
                {
                    IsError          = false,
                    AdditionAudieces = additionalAudience
                };
            }
            //return
            return(result);
        }
Example #2
0
        public async Task <AdditonalAudienceValidationResult> ValidateAsync(HttpContext context)
        {
            _logger.LogDebug("Start AdditonalAudienceValidator Validation");
            AdditonalAudienceValidationResult result =
                new AdditonalAudienceValidationResult();
            var body = await context.Request.ReadFormAsync();

            if (body != null)
            {
                string additonalAuds;
                if (!ValidateKeyPresence(body, out additonalAuds))
                {
                    result = new AdditonalAudienceValidationResult
                    {
                        IsError          = true,
                        Error            = "additionalauds_missing",
                        ErrorDescription = "Additional Audience Missing"
                    };
                }
                else
                {
                    result = await ValidateAudience(additonalAuds);
                }
            }
            else
            {
                result = new AdditonalAudienceValidationResult
                {
                    IsError          = true,
                    Error            = "additionalauds_missing",
                    ErrorDescription = "Additional Audience Missing"
                };
            }
            return(result);

            _logger.LogDebug("Completed AdditonalAudienceValidator Validation");
        }