Rename AuthorizationContext
This commit is contained in:
parent
d814cef75a
commit
1a99fad0c6
|
|
@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
public abstract class AuthorizationHandler<TRequirement> : IAuthorizationHandler
|
public abstract class AuthorizationHandler<TRequirement> : IAuthorizationHandler
|
||||||
where TRequirement : IAuthorizationRequirement
|
where TRequirement : IAuthorizationRequirement
|
||||||
{
|
{
|
||||||
public void Handle(AuthorizationContext context)
|
public void Handle(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
foreach (var req in context.Requirements.OfType<TRequirement>())
|
foreach (var req in context.Requirements.OfType<TRequirement>())
|
||||||
{
|
{
|
||||||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task HandleAsync(AuthorizationContext context)
|
public virtual async Task HandleAsync(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
foreach (var req in context.Requirements.OfType<TRequirement>())
|
foreach (var req in context.Requirements.OfType<TRequirement>())
|
||||||
{
|
{
|
||||||
|
|
@ -25,9 +25,9 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void Handle(AuthorizationContext context, TRequirement requirement);
|
protected abstract void Handle(AuthorizationHandlerContext context, TRequirement requirement);
|
||||||
|
|
||||||
protected virtual Task HandleAsync(AuthorizationContext context, TRequirement requirement)
|
protected virtual Task HandleAsync(AuthorizationHandlerContext context, TRequirement requirement)
|
||||||
{
|
{
|
||||||
Handle(context, requirement);
|
Handle(context, requirement);
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
public abstract class AuthorizationHandler<TRequirement, TResource> : IAuthorizationHandler
|
public abstract class AuthorizationHandler<TRequirement, TResource> : IAuthorizationHandler
|
||||||
where TRequirement : IAuthorizationRequirement
|
where TRequirement : IAuthorizationRequirement
|
||||||
{
|
{
|
||||||
public virtual async Task HandleAsync(AuthorizationContext context)
|
public virtual async Task HandleAsync(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
if (context.Resource is TResource)
|
if (context.Resource is TResource)
|
||||||
{
|
{
|
||||||
|
|
@ -48,13 +48,13 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual Task HandleAsync(AuthorizationContext context, TRequirement requirement, TResource resource)
|
protected virtual Task HandleAsync(AuthorizationHandlerContext context, TRequirement requirement, TResource resource)
|
||||||
{
|
{
|
||||||
Handle(context, requirement, resource);
|
Handle(context, requirement, resource);
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Handle(AuthorizationContext context)
|
public virtual void Handle(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
if (context.Resource is TResource)
|
if (context.Resource is TResource)
|
||||||
{
|
{
|
||||||
|
|
@ -65,6 +65,6 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void Handle(AuthorizationContext context, TRequirement requirement, TResource resource);
|
protected abstract void Handle(AuthorizationHandlerContext context, TRequirement requirement, TResource resource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,13 +11,13 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Contains authorization information used by <see cref="IAuthorizationHandler"/>.
|
/// Contains authorization information used by <see cref="IAuthorizationHandler"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AuthorizationContext
|
public class AuthorizationHandlerContext
|
||||||
{
|
{
|
||||||
private HashSet<IAuthorizationRequirement> _pendingRequirements;
|
private HashSet<IAuthorizationRequirement> _pendingRequirements;
|
||||||
private bool _failCalled;
|
private bool _failCalled;
|
||||||
private bool _succeedCalled;
|
private bool _succeedCalled;
|
||||||
|
|
||||||
public AuthorizationContext(
|
public AuthorizationHandlerContext(
|
||||||
IEnumerable<IAuthorizationRequirement> requirements,
|
IEnumerable<IAuthorizationRequirement> requirements,
|
||||||
ClaimsPrincipal user,
|
ClaimsPrincipal user,
|
||||||
object resource)
|
object resource)
|
||||||
|
|
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assert">Function that must return true</param>
|
/// <param name="assert">Function that must return true</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationContext, bool> assert)
|
public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationHandlerContext, bool> assert)
|
||||||
{
|
{
|
||||||
if (assert == null)
|
if (assert == null)
|
||||||
{
|
{
|
||||||
|
|
@ -145,7 +145,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assert">Function that must return true</param>
|
/// <param name="assert">Function that must return true</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationContext, Task<bool>> assert)
|
public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationHandlerContext, Task<bool>> assert)
|
||||||
{
|
{
|
||||||
if (assert == null)
|
if (assert == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
throw new ArgumentNullException(nameof(requirements));
|
throw new ArgumentNullException(nameof(requirements));
|
||||||
}
|
}
|
||||||
|
|
||||||
var authContext = new AuthorizationContext(requirements, user, resource);
|
var authContext = new AuthorizationHandlerContext(requirements, user, resource);
|
||||||
foreach (var handler in _handlers)
|
foreach (var handler in _handlers)
|
||||||
{
|
{
|
||||||
await handler.HandleAsync(authContext);
|
await handler.HandleAsync(authContext);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,6 @@ namespace Microsoft.AspNetCore.Authorization
|
||||||
{
|
{
|
||||||
public interface IAuthorizationHandler
|
public interface IAuthorizationHandler
|
||||||
{
|
{
|
||||||
Task HandleAsync(AuthorizationContext context);
|
Task HandleAsync(AuthorizationHandlerContext context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Function that is called to handle this requirement
|
/// Function that is called to handle this requirement
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Func<AuthorizationContext, Task<bool>> Handler { get; }
|
public Func<AuthorizationHandlerContext, Task<bool>> Handler { get; }
|
||||||
|
|
||||||
public AssertionRequirement(Func<AuthorizationContext, bool> assert)
|
public AssertionRequirement(Func<AuthorizationHandlerContext, bool> assert)
|
||||||
{
|
{
|
||||||
if (assert == null)
|
if (assert == null)
|
||||||
{
|
{
|
||||||
|
|
@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
Handler = context => Task.FromResult(assert(context));
|
Handler = context => Task.FromResult(assert(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
public AssertionRequirement(Func<AuthorizationContext, Task<bool>> assert)
|
public AssertionRequirement(Func<AuthorizationHandlerContext, Task<bool>> assert)
|
||||||
{
|
{
|
||||||
if (assert == null)
|
if (assert == null)
|
||||||
{
|
{
|
||||||
|
|
@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
Handler = assert;
|
Handler = assert;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task HandleAsync(AuthorizationContext context)
|
public async Task HandleAsync(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
if (await Handler(context))
|
if (await Handler(context))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
public string ClaimType { get; }
|
public string ClaimType { get; }
|
||||||
public IEnumerable<string> AllowedValues { get; }
|
public IEnumerable<string> AllowedValues { get; }
|
||||||
|
|
||||||
protected override void Handle(AuthorizationContext context, ClaimsAuthorizationRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, ClaimsAuthorizationRequirement requirement)
|
||||||
{
|
{
|
||||||
if (context.User != null)
|
if (context.User != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
{
|
{
|
||||||
public class DenyAnonymousAuthorizationRequirement : AuthorizationHandler<DenyAnonymousAuthorizationRequirement>, IAuthorizationRequirement
|
public class DenyAnonymousAuthorizationRequirement : AuthorizationHandler<DenyAnonymousAuthorizationRequirement>, IAuthorizationRequirement
|
||||||
{
|
{
|
||||||
protected override void Handle(AuthorizationContext context, DenyAnonymousAuthorizationRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, DenyAnonymousAuthorizationRequirement requirement)
|
||||||
{
|
{
|
||||||
var user = context.User;
|
var user = context.User;
|
||||||
var userIsAnonymous =
|
var userIsAnonymous =
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
|
|
||||||
public string RequiredName { get; }
|
public string RequiredName { get; }
|
||||||
|
|
||||||
protected override void Handle(AuthorizationContext context, NameAuthorizationRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, NameAuthorizationRequirement requirement)
|
||||||
{
|
{
|
||||||
if (context.User != null)
|
if (context.User != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
{
|
{
|
||||||
public class PassThroughAuthorizationHandler : IAuthorizationHandler
|
public class PassThroughAuthorizationHandler : IAuthorizationHandler
|
||||||
{
|
{
|
||||||
public async Task HandleAsync(AuthorizationContext context)
|
public async Task HandleAsync(AuthorizationHandlerContext context)
|
||||||
{
|
{
|
||||||
foreach (var handler in context.Requirements.OfType<IAuthorizationHandler>())
|
foreach (var handler in context.Requirements.OfType<IAuthorizationHandler>())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Authorization.Infrastructure
|
||||||
|
|
||||||
public IEnumerable<string> AllowedRoles { get; }
|
public IEnumerable<string> AllowedRoles { get; }
|
||||||
|
|
||||||
protected override void Handle(AuthorizationContext context, RolesAuthorizationRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, RolesAuthorizationRequirement requirement)
|
||||||
{
|
{
|
||||||
if (context.User != null)
|
if (context.User != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -580,7 +580,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
public class CustomRequirement : IAuthorizationRequirement { }
|
public class CustomRequirement : IAuthorizationRequirement { }
|
||||||
public class CustomHandler : AuthorizationHandler<CustomRequirement>
|
public class CustomHandler : AuthorizationHandler<CustomRequirement>
|
||||||
{
|
{
|
||||||
protected override void Handle(AuthorizationContext context, CustomRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, CustomRequirement requirement)
|
||||||
{
|
{
|
||||||
context.Succeed(requirement);
|
context.Succeed(requirement);
|
||||||
}
|
}
|
||||||
|
|
@ -636,7 +636,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
|
||||||
public bool Succeed { get; set; }
|
public bool Succeed { get; set; }
|
||||||
|
|
||||||
protected override void Handle(AuthorizationContext context, PassThroughRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, PassThroughRequirement requirement)
|
||||||
{
|
{
|
||||||
if (Succeed) {
|
if (Succeed) {
|
||||||
context.Succeed(requirement);
|
context.Succeed(requirement);
|
||||||
|
|
@ -766,7 +766,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
|
||||||
private IEnumerable<OperationAuthorizationRequirement> _allowed;
|
private IEnumerable<OperationAuthorizationRequirement> _allowed;
|
||||||
|
|
||||||
protected override void Handle(AuthorizationContext context, OperationAuthorizationRequirement requirement, ExpenseReport resource)
|
protected override void Handle(AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, ExpenseReport resource)
|
||||||
{
|
{
|
||||||
if (_allowed.Contains(requirement))
|
if (_allowed.Contains(requirement))
|
||||||
{
|
{
|
||||||
|
|
@ -777,7 +777,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
|
||||||
public class SuperUserHandler : AuthorizationHandler<OperationAuthorizationRequirement>
|
public class SuperUserHandler : AuthorizationHandler<OperationAuthorizationRequirement>
|
||||||
{
|
{
|
||||||
protected override void Handle(AuthorizationContext context, OperationAuthorizationRequirement requirement)
|
protected override void Handle(AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement)
|
||||||
{
|
{
|
||||||
if (context.User.HasClaim("SuperUser", "yes"))
|
if (context.User.HasClaim("SuperUser", "yes"))
|
||||||
{
|
{
|
||||||
|
|
@ -812,7 +812,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
|
||||||
public class NotCalledHandler : AuthorizationHandler<OperationAuthorizationRequirement, string>
|
public class NotCalledHandler : AuthorizationHandler<OperationAuthorizationRequirement, string>
|
||||||
{
|
{
|
||||||
protected override void Handle(AuthorizationContext context, OperationAuthorizationRequirement requirement, string resource)
|
protected override void Handle(AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, string resource)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
@ -820,7 +820,7 @@ namespace Microsoft.AspNetCore.Authorization.Test
|
||||||
|
|
||||||
public class EvenHandler : AuthorizationHandler<OperationAuthorizationRequirement, int>
|
public class EvenHandler : AuthorizationHandler<OperationAuthorizationRequirement, int>
|
||||||
{
|
{
|
||||||
protected override void Handle(AuthorizationContext context, OperationAuthorizationRequirement requirement, int id)
|
protected override void Handle(AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, int id)
|
||||||
{
|
{
|
||||||
if (id % 2 == 0)
|
if (id % 2 == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue