parent
177f528b93
commit
95c663a289
|
|
@ -16,11 +16,16 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
var originUri = new Uri(origin, UriKind.Absolute);
|
|
||||||
return policy.Origins
|
if (Uri.TryCreate(origin, UriKind.Absolute, out var originUri))
|
||||||
.Where(o => o.Contains($"://{_WildcardSubdomain}"))
|
{
|
||||||
.Select(CreateDomainUri)
|
return policy.Origins
|
||||||
.Any(domain => UriHelpers.IsSubdomainOf(originUri, domain));
|
.Where(o => o.Contains($"://{_WildcardSubdomain}"))
|
||||||
|
.Select(CreateDomainUri)
|
||||||
|
.Any(domain => UriHelpers.IsSubdomainOf(originUri, domain));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Uri CreateDomainUri(string origin)
|
private static Uri CreateDomainUri(string origin)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,26 @@ namespace Microsoft.AspNetCore.Cors.Infrastructure
|
||||||
Assert.True(actual);
|
Assert.True(actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(null)]
|
||||||
|
[InlineData("null")]
|
||||||
|
[InlineData("http://")]
|
||||||
|
[InlineData("http://*")]
|
||||||
|
[InlineData("http://.domain")]
|
||||||
|
[InlineData("http://.domain/hello")]
|
||||||
|
public void IsOriginAnAllowedSubdomain_ReturnsFalseIfOriginIsMalformedUri(string malformedOrigin)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var policy = new CorsPolicy();
|
||||||
|
policy.Origins.Add("http://*.domain");
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var actual = policy.IsOriginAnAllowedSubdomain(malformedOrigin);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.False(actual);
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData("http://sub.domain", "http://*.domain")]
|
[InlineData("http://sub.domain", "http://*.domain")]
|
||||||
[InlineData("http://sub.sub.domain", "http://*.domain")]
|
[InlineData("http://sub.sub.domain", "http://*.domain")]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue