[Fixes #3979] AuthorizationContext conflicts with type in Microsoft.AspNet.Authorization

This commit is contained in:
jacalvar 2016-01-26 07:30:05 -08:00
parent 726ebb7a05
commit 71a815be50
25 changed files with 63 additions and 63 deletions

View File

@ -6,9 +6,9 @@ using System.Collections.Generic;
namespace Microsoft.AspNetCore.Mvc.Filters
{
public class AuthorizationContext : FilterContext
public class AuthorizationFilterContext : FilterContext
{
public AuthorizationContext(
public AuthorizationFilterContext(
ActionContext actionContext,
IList<IFilterMetadata> filters)
: base(actionContext, filters)

View File

@ -7,6 +7,6 @@ namespace Microsoft.AspNetCore.Mvc.Filters
{
public interface IAsyncAuthorizationFilter : IFilterMetadata
{
Task OnAuthorizationAsync(AuthorizationContext context);
Task OnAuthorizationAsync(AuthorizationFilterContext context);
}
}

View File

@ -5,6 +5,6 @@ namespace Microsoft.AspNetCore.Mvc.Filters
{
public interface IAuthorizationFilter : IFilterMetadata
{
void OnAuthorization(AuthorizationContext context);
void OnAuthorization(AuthorizationFilterContext context);
}
}

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters
{
public int Order { get; set; }
public virtual Task OnAuthorizationAsync(AuthorizationContext context)
public virtual Task OnAuthorizationAsync(AuthorizationFilterContext context)
{
if (context == null)
{
@ -26,11 +26,11 @@ namespace Microsoft.AspNetCore.Mvc.Filters
return TaskCache.CompletedTask;
}
public virtual void OnAuthorization(AuthorizationContext context)
public virtual void OnAuthorization(AuthorizationFilterContext context)
{
}
protected virtual bool HasAllowAnonymous(AuthorizationContext context)
protected virtual bool HasAllowAnonymous(AuthorizationFilterContext context)
{
if (context == null)
{
@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters
return context.Filters.Any(item => item is IAllowAnonymousFilter);
}
protected virtual void Fail(AuthorizationContext context)
protected virtual void Fail(AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public AuthorizationPolicy Policy { get; private set; }
/// <inheritdoc />
public virtual async Task OnAuthorizationAsync(Filters.AuthorizationContext context)
public virtual async Task OnAuthorizationAsync(Filters.AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private IFilterMetadata[] _filters;
private FilterCursor _cursor;
private AuthorizationContext _authorizationContext;
private AuthorizationFilterContext _authorizationContext;
private ResourceExecutingContext _resourceExecutingContext;
private ResourceExecutedContext _resourceExecutedContext;
@ -186,7 +186,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
_cursor.Reset();
_authorizationContext = new AuthorizationContext(Context, _filters);
_authorizationContext = new AuthorizationFilterContext(Context, _filters);
return InvokeAuthorizationFilterAsync();
}

View File

@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public static void BeforeOnAuthorizationAsync(
this DiagnosticSource diagnosticSource,
AuthorizationContext authorizationContext,
AuthorizationFilterContext authorizationContext,
IAsyncAuthorizationFilter filter)
{
if (diagnosticSource.IsEnabled("Microsoft.AspNetCore.Mvc.BeforeOnAuthorization"))
@ -60,7 +60,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public static void AfterOnAuthorizationAsync(
this DiagnosticSource diagnosticSource,
AuthorizationContext authorizationContext,
AuthorizationFilterContext authorizationContext,
IAsyncAuthorizationFilter filter)
{
if (diagnosticSource.IsEnabled("Microsoft.AspNetCore.Mvc.AfterOnAuthorization"))
@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public static void BeforeOnAuthorization(
this DiagnosticSource diagnosticSource,
AuthorizationContext authorizationContext,
AuthorizationFilterContext authorizationContext,
IAuthorizationFilter filter)
{
if (diagnosticSource.IsEnabled("Microsoft.AspNetCore.Mvc.BeforeOnAuthorization"))
@ -96,7 +96,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public static void AfterOnAuthorization(
this DiagnosticSource diagnosticSource,
AuthorizationContext authorizationContext,
AuthorizationFilterContext authorizationContext,
IAuthorizationFilter filter)
{
if (diagnosticSource.IsEnabled("Microsoft.AspNetCore.Mvc.AfterOnAuthorization"))

View File

@ -12,7 +12,7 @@ namespace Microsoft.AspNetCore.Mvc
{
public int Order { get; set; }
public virtual void OnAuthorization(AuthorizationContext filterContext)
public virtual void OnAuthorization(AuthorizationFilterContext filterContext)
{
if (filterContext == null)
{
@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc
}
}
protected virtual void HandleNonHttpsRequest(AuthorizationContext filterContext)
protected virtual void HandleNonHttpsRequest(AuthorizationFilterContext filterContext)
{
// only redirect for GET requests, otherwise the browser might not propagate the verb and request
// body correctly.

View File

@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Mvc.Cors.Internal
/// <inheritdoc />
public async Task OnAuthorizationAsync(Filters.AuthorizationContext context)
public async Task OnAuthorizationAsync(Filters.AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.Cors.Internal
}
/// <inheritdoc />
public Task OnAuthorizationAsync(AuthorizationContext context)
public Task OnAuthorizationAsync(AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
{
}
protected override bool ShouldValidate(AuthorizationContext context)
protected override bool ShouldValidate(AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
_logger = loggerFactory.CreateLogger<ValidateAntiforgeryTokenAuthorizationFilter>();
}
public async Task OnAuthorizationAsync(AuthorizationContext context)
public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
{
if (context == null)
{
@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
}
}
protected virtual bool ShouldValidate(AuthorizationContext context)
protected virtual bool ShouldValidate(AuthorizationFilterContext context)
{
if (context == null)
{

View File

@ -274,7 +274,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
Assert.NotNull(authorizationContext.Result);
}
private Filters.AuthorizationContext GetAuthorizationContext(
private Filters.AuthorizationFilterContext GetAuthorizationContext(
Action<ServiceCollection> registerServices,
bool anonymous = false)
{
@ -325,13 +325,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal
auth.Setup(c => c.AuthenticateAsync("Basic")).ReturnsAsync(basicPrincipal);
auth.Setup(c => c.AuthenticateAsync("Fails")).ReturnsAsync(null);
// AuthorizationContext
// AuthorizationFilterContext
var actionContext = new ActionContext(
httpContext: httpContext.Object,
routeData: new RouteData(),
actionDescriptor: new ActionDescriptor());
var authorizationContext = new Filters.AuthorizationContext(
var authorizationContext = new Filters.AuthorizationFilterContext(
actionContext,
Enumerable.Empty<IFilterMetadata>().ToList()
);

View File

@ -254,7 +254,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
// Arrange
var filter = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
filter.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationContext>())).Verifiable();
filter.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>())).Verifiable();
var invoker = CreateInvoker(filter.Object);
@ -262,7 +262,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
await invoker.InvokeAsync();
// Assert
filter.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()), Times.Once());
filter.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()), Times.Once());
}
[Fact]
@ -271,8 +271,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// Arrange
var filter = new Mock<IAsyncAuthorizationFilter>(MockBehavior.Strict);
filter
.Setup(f => f.OnAuthorizationAsync(It.IsAny<AuthorizationContext>()))
.Returns<AuthorizationContext>(context => Task.FromResult(true))
.Setup(f => f.OnAuthorizationAsync(It.IsAny<AuthorizationFilterContext>()))
.Returns<AuthorizationFilterContext>(context => Task.FromResult(true))
.Verifiable();
var invoker = CreateInvoker(filter.Object);
@ -282,7 +282,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// Assert
filter.Verify(
f => f.OnAuthorizationAsync(It.IsAny<AuthorizationContext>()),
f => f.OnAuthorizationAsync(It.IsAny<AuthorizationFilterContext>()),
Times.Once());
}
@ -294,8 +294,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var filter1 = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
filter1
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()))
.Callback<AuthorizationContext>(c => c.Result = challenge)
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()))
.Callback<AuthorizationFilterContext>(c => c.Result = challenge)
.Verifiable();
var filter2 = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
@ -306,7 +306,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
await invoker.InvokeAsync();
// Assert
filter1.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()), Times.Once());
filter1.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()), Times.Once());
Assert.False(invoker.ControllerFactory.CreateCalled);
}
@ -318,8 +318,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var filter1 = new Mock<IAsyncAuthorizationFilter>(MockBehavior.Strict);
filter1
.Setup(f => f.OnAuthorizationAsync(It.IsAny<AuthorizationContext>()))
.Returns<AuthorizationContext>((context) =>
.Setup(f => f.OnAuthorizationAsync(It.IsAny<AuthorizationFilterContext>()))
.Returns<AuthorizationFilterContext>((context) =>
{
context.Result = challenge;
return Task.FromResult(true);
@ -335,7 +335,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// Assert
filter1.Verify(
f => f.OnAuthorizationAsync(It.IsAny<AuthorizationContext>()),
f => f.OnAuthorizationAsync(It.IsAny<AuthorizationFilterContext>()),
Times.Once());
Assert.False(invoker.ControllerFactory.CreateCalled);
@ -359,8 +359,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var authorizationFilter1 = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
authorizationFilter1
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()))
.Callback<AuthorizationContext>(c => { throw expected; })
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()))
.Callback<AuthorizationFilterContext>(c => { throw expected; })
.Verifiable();
// None of these filters should run
@ -385,7 +385,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// Assert
Assert.Same(expected, thrown);
exceptionFilter.Verify(f => f.OnException(It.IsAny<ExceptionContext>()), Times.Never());
authorizationFilter1.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()), Times.Once());
authorizationFilter1.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()), Times.Once());
}
[Fact]
@ -400,8 +400,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var authorizationFilter = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
authorizationFilter
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()))
.Callback<AuthorizationContext>(c => c.Result = challenge.Object)
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()))
.Callback<AuthorizationFilterContext>(c => c.Result = challenge.Object)
.Verifiable();
var resultFilter = new Mock<IResultFilter>(MockBehavior.Strict);
@ -412,7 +412,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
await invoker.InvokeAsync();
// Assert
authorizationFilter.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()), Times.Once());
authorizationFilter.Verify(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()), Times.Once());
challenge.Verify(c => c.ExecuteResultAsync(It.IsAny<ActionContext>()), Times.Once());
}
@ -1848,8 +1848,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var authorizationFilter = new Mock<IAuthorizationFilter>(MockBehavior.Strict);
authorizationFilter
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationContext>()))
.Callback<AuthorizationContext>((c) =>
.Setup(f => f.OnAuthorization(It.IsAny<AuthorizationFilterContext>()))
.Callback<AuthorizationFilterContext>((c) =>
{
c.Result = _result;
});
@ -2283,7 +2283,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
_expectedMaxAllowedErrors = maxAllowedErrors;
}
public void OnAuthorization(AuthorizationContext context)
public void OnAuthorization(AuthorizationFilterContext context)
{
Assert.NotNull(context.ModelState.MaxAllowedErrors);
Assert.Equal(_expectedMaxAllowedErrors, context.ModelState.MaxAllowedErrors);

View File

@ -1191,7 +1191,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class UnsupportedFiltersController : IExceptionFilter, IAuthorizationFilter, IAsyncResourceFilter
{
public void OnAuthorization(AuthorizationContext context)
public void OnAuthorization(AuthorizationFilterContext context)
{
throw new NotImplementedException();
}

View File

@ -149,16 +149,16 @@ namespace Microsoft.AspNetCore.Mvc
private class CustomRequireHttpsAttribute : RequireHttpsAttribute
{
protected override void HandleNonHttpsRequest(AuthorizationContext filterContext)
protected override void HandleNonHttpsRequest(AuthorizationFilterContext filterContext)
{
filterContext.Result = new HttpStatusCodeResult(StatusCodes.Status404NotFound);
}
}
private static AuthorizationContext CreateAuthorizationContext(HttpContext ctx)
private static AuthorizationFilterContext CreateAuthorizationContext(HttpContext ctx)
{
var actionContext = new ActionContext(ctx, new RouteData(), new ActionDescriptor());
return new AuthorizationContext(actionContext, new IFilterMetadata[0]);
return new AuthorizationFilterContext(actionContext, new IFilterMetadata[0]);
}
}
}

View File

@ -127,7 +127,7 @@ namespace Microsoft.AspNetCore.Mvc.Cors.Internal
};
}
private AuthorizationContext GetAuthorizationContext(
private AuthorizationFilterContext GetAuthorizationContext(
FilterDescriptor[] filterDescriptors,
RequestHeaders headers = null,
bool isPreflight = false)
@ -150,13 +150,13 @@ namespace Microsoft.AspNetCore.Mvc.Cors.Internal
var method = isPreflight ? CorsConstants.PreflightHttpMethod : "GET";
httpContext.Request.Method = method;
// AuthorizationContext
// AuthorizationFilterContext
var actionContext = new ActionContext(
httpContext: httpContext,
routeData: new RouteData(),
actionDescriptor: new ActionDescriptor() { FilterDescriptors = filterDescriptors });
var authorizationContext = new AuthorizationContext(
var authorizationContext = new AuthorizationFilterContext(
actionContext,
filterDescriptors.Select(filter => filter.Filter).ToList()
);

View File

@ -34,7 +34,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var actionContext = new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor());
actionContext.HttpContext.Request.Method = httpMethod;
var context = new AuthorizationContext(actionContext, new[] { filter });
var context = new AuthorizationFilterContext(actionContext, new[] { filter });
// Act
await filter.OnAuthorizationAsync(context);
@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var actionContext = new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor());
actionContext.HttpContext.Request.Method = httpMethod;
var context = new AuthorizationContext(actionContext, new[] { filter });
var context = new AuthorizationFilterContext(actionContext, new[] { filter });
// Act
await filter.OnAuthorizationAsync(context);
@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var actionContext = new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor());
actionContext.HttpContext.Request.Method = "POST";
var context = new AuthorizationContext(actionContext, new IFilterMetadata[]
var context = new AuthorizationFilterContext(actionContext, new IFilterMetadata[]
{
filter,
new IgnoreAntiforgeryTokenAttribute(),

View File

@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var actionContext = new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor());
actionContext.HttpContext.Request.Method = httpMethod;
var context = new AuthorizationContext(actionContext, new[] { filter });
var context = new AuthorizationFilterContext(actionContext, new[] { filter });
// Act
await filter.OnAuthorizationAsync(context);
@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var actionContext = new ActionContext(new DefaultHttpContext(), new RouteData(), new ActionDescriptor());
actionContext.HttpContext.Request.Method = "POST";
var context = new AuthorizationContext(actionContext, new IFilterMetadata[]
var context = new AuthorizationFilterContext(actionContext, new IFilterMetadata[]
{
filter,
new IgnoreAntiforgeryTokenAttribute(),

View File

@ -10,7 +10,7 @@ namespace CorsWebSite
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class AllRequestsBlockingAuthorizationFilter : Attribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext context)
public void OnAuthorization(AuthorizationFilterContext context)
{
context.Result = new ContentResult()
{

View File

@ -9,7 +9,7 @@ namespace FiltersWebSite
{
public class AuthorizeUserAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(AuthorizationContext context)
public override void OnAuthorization(AuthorizationFilterContext context)
{
if (context.ActionDescriptor.DisplayName == "FiltersWebSite.ProductsController.GetPrice")
{

View File

@ -7,7 +7,7 @@ namespace FiltersWebSite
{
public class BlockAnonymous : AuthorizationFilterAttribute
{
public override void OnAuthorization(AuthorizationContext context)
public override void OnAuthorization(AuthorizationFilterContext context)
{
if (!HasAllowAnonymous(context))
{

View File

@ -8,7 +8,7 @@ namespace FiltersWebSite
{
public class ControllerAuthorizationFilter : AuthorizeUserAttribute
{
public override void OnAuthorization(AuthorizationContext context)
public override void OnAuthorization(AuthorizationFilterContext context)
{
context.HttpContext.Response.Headers.Append("filters", "On Controller Authorization Filter - OnAuthorization");
}

View File

@ -8,7 +8,7 @@ namespace FiltersWebSite
{
public class GlobalAuthorizationFilter : AuthorizationFilterAttribute
{
public override void OnAuthorization(AuthorizationContext context)
public override void OnAuthorization(AuthorizationFilterContext context)
{
if (context.ActionDescriptor.DisplayName == "FiltersWebSite.ProductsController.GetPrice")
{

View File

@ -8,7 +8,7 @@ namespace FiltersWebSite
{
public class ThrowingAuthorizationFilter : AuthorizationFilterAttribute
{
public override void OnAuthorization(AuthorizationContext context)
public override void OnAuthorization(AuthorizationFilterContext context)
{
throw new InvalidProgramException("Authorization Filter Threw");
}