From 43889957880dded627cae22da2276473948742bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 24 Feb 2018 18:38:41 +0300 Subject: [PATCH] Implemented allow anonymous for auth interception. --- .../Authorization/AbpAuthorizationPolicyProvider.cs | 1 - .../MethodInvocationAuthorizationService.cs | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs index 999e9e3fb3..da3234d22c 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs @@ -24,7 +24,6 @@ namespace Volo.Abp.Authorization var permission = _permissionDefinitionManager.GetOrNull(policyName); if (permission == null) - { return await base.GetPolicyAsync(policyName); } diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index de489c86a3..4e6bf097bb 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -16,7 +16,10 @@ namespace Volo.Abp.Authorization public async Task CheckAsync(MethodInvocationAuthorizationContext context) { - //TODO: Fully implement! (allow anonymous... etc.) + if (AllowAnonymous(context)) + { + return; + } var authorizationAttributes = GetAuthorizationDataAttributes(context); foreach (var authorizationAttribute in authorizationAttributes) @@ -25,6 +28,11 @@ namespace Volo.Abp.Authorization } } + protected virtual bool AllowAnonymous(MethodInvocationAuthorizationContext context) + { + return context.Method.GetCustomAttributes(true).OfType().Any(); + } + protected virtual IAuthorizeData[] GetAuthorizationDataAttributes(MethodInvocationAuthorizationContext context) { return context.Method