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); }
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"); }