Changes per PR comments

This commit is contained in:
Pranav K 2019-05-11 06:22:19 -07:00
parent 20982a947d
commit 8a3fdb4b21
No known key found for this signature in database
GPG Key ID: 1963DA6D96C3057A
3 changed files with 10 additions and 12 deletions

View File

@ -125,11 +125,6 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
return _next(context); return _next(context);
} }
return InvokeCore(context, corsPolicyProvider);
}
private Task InvokeCore(HttpContext context, ICorsPolicyProvider corsPolicyProvider)
{
// CORS policy resolution rules: // CORS policy resolution rules:
// //
// 1. If there is an endpoint with IDisableCorsAttribute then CORS is not run // 1. If there is an endpoint with IDisableCorsAttribute then CORS is not run
@ -191,13 +186,13 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
} }
return EvaluateAndApplyPolicy(context, corsPolicy); return EvaluateAndApplyPolicy(context, corsPolicy);
}
private async Task InvokeCoreAwaited(HttpContext context, Task<CorsPolicy> policyTask) async Task InvokeCoreAwaited(HttpContext context, Task<CorsPolicy> policyTask)
{ {
var corsPolicy = await policyTask; var corsPolicy = await policyTask;
await EvaluateAndApplyPolicy(context, corsPolicy); await EvaluateAndApplyPolicy(context, corsPolicy);
} }
}
private Task EvaluateAndApplyPolicy(HttpContext context, CorsPolicy corsPolicy) private Task EvaluateAndApplyPolicy(HttpContext context, CorsPolicy corsPolicy)
{ {

View File

@ -14,8 +14,10 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
{ {
private string _defaultPolicyName = "__DefaultCorsPolicy"; private string _defaultPolicyName = "__DefaultCorsPolicy";
// DefaultCorsPolicyProvider returns a Task<CorsPolicy>. We'll cache the value to be returned alongside
// the actual policy instance to have a separate lookup.
internal IDictionary<string, (CorsPolicy policy, Task<CorsPolicy> policyTask)> PolicyMap { get; } internal IDictionary<string, (CorsPolicy policy, Task<CorsPolicy> policyTask)> PolicyMap { get; }
= new Dictionary<string, (CorsPolicy, Task<CorsPolicy>)>(); = new Dictionary<string, (CorsPolicy, Task<CorsPolicy>)>(StringComparer.Ordinal);
public string DefaultPolicyName public string DefaultPolicyName
{ {

View File

@ -11,6 +11,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
/// <inheritdoc /> /// <inheritdoc />
public class DefaultCorsPolicyProvider : ICorsPolicyProvider public class DefaultCorsPolicyProvider : ICorsPolicyProvider
{ {
private static readonly Task<CorsPolicy> NullResult = Task.FromResult<CorsPolicy>(null);
private readonly CorsOptions _options; private readonly CorsOptions _options;
/// <summary> /// <summary>
@ -36,7 +37,7 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
return result.policyTask; return result.policyTask;
} }
return Task.FromResult<CorsPolicy>(null); return NullResult;
} }
} }
} }