From 78664f1d491a2bff36a151b7b7c3dd31d60371f3 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 12 May 2020 16:25:21 +0800 Subject: [PATCH 1/4] Make ICurrentPrincipalAccessor changeable. Resolve #3913 --- .../SignalR/AbpSignalRUserIdProvider.cs | 17 +++++-- .../HttpContextCurrentPrincipalAccessor.cs | 9 +--- .../Claims/ICurrentPrincipalAccessor.cs | 5 +- .../Claims/ThreadCurrentPrincipalAccessor.cs | 39 +++++++++++++-- .../FakeAuthenticationMiddleware.cs | 9 +++- .../Claims/CurrentPrincipalAccessor_Test.cs | 50 +++++++++++++++++++ 6 files changed, 111 insertions(+), 18 deletions(-) create mode 100644 framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/CurrentPrincipalAccessor_Test.cs diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRUserIdProvider.cs b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRUserIdProvider.cs index 10d986933d..71abc1cc54 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRUserIdProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRUserIdProvider.cs @@ -1,21 +1,28 @@ using Microsoft.AspNetCore.SignalR; using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; using Volo.Abp.Users; namespace Volo.Abp.AspNetCore.SignalR { public class AbpSignalRUserIdProvider : IUserIdProvider, ITransientDependency { - public ICurrentUser CurrentUser { get; } - - public AbpSignalRUserIdProvider(ICurrentUser currentUser) + private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor; + + private readonly ICurrentUser _currentUser; + + public AbpSignalRUserIdProvider(ICurrentPrincipalAccessor currentPrincipalAccessor, ICurrentUser currentUser) { - CurrentUser = currentUser; + _currentPrincipalAccessor = currentPrincipalAccessor; + _currentUser = currentUser; } public virtual string GetUserId(HubConnectionContext connection) { - return CurrentUser.Id?.ToString(); + using (_currentPrincipalAccessor.Change(connection.User)) + { + return _currentUser.Id?.ToString(); + } } } } diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs index d1318e2c3e..601ea32021 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs @@ -1,18 +1,13 @@ -using System.Security.Claims; -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Volo.Abp.Security.Claims; namespace Volo.Abp.AspNetCore.Security.Claims { public class HttpContextCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - public override ClaimsPrincipal Principal => _httpContextAccessor.HttpContext?.User ?? base.Principal; - - private readonly IHttpContextAccessor _httpContextAccessor; - public HttpContextCurrentPrincipalAccessor(IHttpContextAccessor httpContextAccessor) { - _httpContextAccessor = httpContextAccessor; + CurrentScope.Value = () => httpContextAccessor.HttpContext?.User ?? GetThreadClaimsPrincipal(); } } } diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ICurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ICurrentPrincipalAccessor.cs index d49e61ddd6..c510765006 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ICurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ICurrentPrincipalAccessor.cs @@ -1,9 +1,12 @@ -using System.Security.Claims; +using System; +using System.Security.Claims; namespace Volo.Abp.Security.Claims { public interface ICurrentPrincipalAccessor { ClaimsPrincipal Principal { get; } + + IDisposable Change(ClaimsPrincipal principal); } } diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs index de0032c51d..f5d763705c 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs @@ -1,11 +1,44 @@ -using System.Security.Claims; +using System; +using System.Security.Claims; using System.Threading; +using System.Xml.Schema; using Volo.Abp.DependencyInjection; namespace Volo.Abp.Security.Claims { public class ThreadCurrentPrincipalAccessor : ICurrentPrincipalAccessor, ISingletonDependency { - public virtual ClaimsPrincipal Principal => Thread.CurrentPrincipal as ClaimsPrincipal; + public Guid Id = Guid.NewGuid(); + + public virtual ClaimsPrincipal Principal + { + get => CurrentScope.Value?.Invoke(); + set => CurrentScope.Value = () => value; + } + + protected readonly AsyncLocal> CurrentScope; + + public ThreadCurrentPrincipalAccessor() + { + CurrentScope = new AsyncLocal> + { + Value = GetThreadClaimsPrincipal + }; + } + + protected ClaimsPrincipal GetThreadClaimsPrincipal() + { + return Thread.CurrentPrincipal as ClaimsPrincipal; + } + + public virtual IDisposable Change(ClaimsPrincipal principal) + { + var parentScope = Principal; + Principal = principal; + return new DisposeAction(() => + { + Principal = parentScope; + }); + } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs index b9caa1d7cb..cb26230b93 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs @@ -4,16 +4,19 @@ using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; namespace Volo.Abp.AspNetCore.Mvc.Authorization { public class FakeAuthenticationMiddleware : IMiddleware, ITransientDependency { private readonly FakeUserClaims _fakeUserClaims; + private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor; - public FakeAuthenticationMiddleware(FakeUserClaims fakeUserClaims) + public FakeAuthenticationMiddleware(FakeUserClaims fakeUserClaims, ICurrentPrincipalAccessor currentPrincipalAccessor) { _fakeUserClaims = fakeUserClaims; + _currentPrincipalAccessor = currentPrincipalAccessor; } public async Task InvokeAsync(HttpContext context, RequestDelegate next) @@ -24,9 +27,11 @@ namespace Volo.Abp.AspNetCore.Mvc.Authorization { new ClaimsIdentity(_fakeUserClaims.Claims, "FakeSchema") }); + + //_currentPrincipalAccessor.Change(context.User); } await next(context); } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/CurrentPrincipalAccessor_Test.cs b/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/CurrentPrincipalAccessor_Test.cs new file mode 100644 index 0000000000..7a7671215d --- /dev/null +++ b/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/CurrentPrincipalAccessor_Test.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Security.Claims; +using Shouldly; +using Volo.Abp.Testing; +using Xunit; + +namespace Volo.Abp.Security.Claims +{ + public class CurrentPrincipalAccessor_Test : AbpIntegratedTest + { + private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor; + + public CurrentPrincipalAccessor_Test() + { + _currentPrincipalAccessor = GetRequiredService(); + } + + [Fact] + public void Should_Get_Changed_Principal_If() + { + var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(new List + { + new Claim(ClaimTypes.Name,"bob"), + new Claim(ClaimTypes.NameIdentifier,"123456") + })); + + var claimsPrincipal2 = new ClaimsPrincipal(new ClaimsIdentity(new List + { + new Claim(ClaimTypes.Name,"lee"), + new Claim(ClaimTypes.NameIdentifier,"654321") + })); + + + _currentPrincipalAccessor.Principal.ShouldBe(null); + + using (_currentPrincipalAccessor.Change(claimsPrincipal)) + { + _currentPrincipalAccessor.Principal.ShouldBe(claimsPrincipal); + + using (_currentPrincipalAccessor.Change(claimsPrincipal2)) + { + _currentPrincipalAccessor.Principal.ShouldBe(claimsPrincipal2); + } + + _currentPrincipalAccessor.Principal.ShouldBe(claimsPrincipal); + } + _currentPrincipalAccessor.Principal.ShouldBeNull(); + } + } +} From 441e18e2f4f8cd81c4c5771993b95ed27f9c8c64 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 13 May 2020 08:43:34 +0800 Subject: [PATCH 2/4] Refactoring ICurrentPrincipalAccessor. --- .../HttpContextCurrentPrincipalAccessor.cs | 12 ++++++-- .../Claims/ThreadCurrentPrincipalAccessor.cs | 30 +++++++------------ .../Security/FakeCurrentPrincipalAccessor.cs | 10 +++++-- .../Security/FakeCurrentPrincipalAccessor.cs | 8 +++-- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs index 601ea32021..717c578d33 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs @@ -1,13 +1,21 @@ -using Microsoft.AspNetCore.Http; +using System.Security.Claims; +using Microsoft.AspNetCore.Http; using Volo.Abp.Security.Claims; namespace Volo.Abp.AspNetCore.Security.Claims { public class HttpContextCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { + private readonly IHttpContextAccessor _httpContextAccessor; + public HttpContextCurrentPrincipalAccessor(IHttpContextAccessor httpContextAccessor) { - CurrentScope.Value = () => httpContextAccessor.HttpContext?.User ?? GetThreadClaimsPrincipal(); + _httpContextAccessor = httpContextAccessor; + } + + protected override ClaimsPrincipal GetClaimsPrincipal() + { + return _httpContextAccessor.HttpContext?.User ?? base.GetClaimsPrincipal(); } } } diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs index f5d763705c..ad496ba916 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs @@ -1,43 +1,33 @@ using System; using System.Security.Claims; using System.Threading; -using System.Xml.Schema; using Volo.Abp.DependencyInjection; namespace Volo.Abp.Security.Claims { public class ThreadCurrentPrincipalAccessor : ICurrentPrincipalAccessor, ISingletonDependency { - public Guid Id = Guid.NewGuid(); + public ClaimsPrincipal Principal => _currentPrincipal.Value ?? GetClaimsPrincipal(); - public virtual ClaimsPrincipal Principal - { - get => CurrentScope.Value?.Invoke(); - set => CurrentScope.Value = () => value; - } + private readonly AsyncLocal _currentPrincipal = new AsyncLocal(); - protected readonly AsyncLocal> CurrentScope; - - public ThreadCurrentPrincipalAccessor() + protected virtual ClaimsPrincipal GetClaimsPrincipal() { - CurrentScope = new AsyncLocal> - { - Value = GetThreadClaimsPrincipal - }; + return Thread.CurrentPrincipal as ClaimsPrincipal; } - protected ClaimsPrincipal GetThreadClaimsPrincipal() + public virtual IDisposable Change(ClaimsPrincipal principal) { - return Thread.CurrentPrincipal as ClaimsPrincipal; + return SetCurrent(principal); } - public virtual IDisposable Change(ClaimsPrincipal principal) + private IDisposable SetCurrent(ClaimsPrincipal principal) { - var parentScope = Principal; - Principal = principal; + var parent = Principal; + _currentPrincipal.Value = principal; return new DisposeAction(() => { - Principal = parentScope; + _currentPrincipal.Value = parent; }); } } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs index ef00c20a24..5e6b064875 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -6,9 +6,13 @@ using Volo.Abp.Security.Claims; namespace MyCompanyName.MyProjectName.Security { [Dependency(ReplaceServices = true)] - public class FakeCurrentPrincipalAccessor : ICurrentPrincipalAccessor, ISingletonDependency + public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - public ClaimsPrincipal Principal => GetPrincipal(); + protected override ClaimsPrincipal GetClaimsPrincipal() + { + return GetPrincipal(); + } + private ClaimsPrincipal _principal; private ClaimsPrincipal GetPrincipal() @@ -36,4 +40,4 @@ namespace MyCompanyName.MyProjectName.Security return _principal; } } -} \ No newline at end of file +} diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs index 4196dd09e1..5e6b064875 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -6,9 +6,13 @@ using Volo.Abp.Security.Claims; namespace MyCompanyName.MyProjectName.Security { [Dependency(ReplaceServices = true)] - public class FakeCurrentPrincipalAccessor : ICurrentPrincipalAccessor, ISingletonDependency + public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - public ClaimsPrincipal Principal => GetPrincipal(); + protected override ClaimsPrincipal GetClaimsPrincipal() + { + return GetPrincipal(); + } + private ClaimsPrincipal _principal; private ClaimsPrincipal GetPrincipal() From 5a2b36eeb4b132d23df74ab2c9b9172c7410b54c Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 13 May 2020 09:57:02 +0800 Subject: [PATCH 3/4] Make GetClaimsPrincipal mehtod public. --- .../Security/Claims/HttpContextCurrentPrincipalAccessor.cs | 2 +- .../Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs | 2 +- .../Mvc/Authorization/FakeAuthenticationMiddleware.cs | 2 -- .../Security/FakeCurrentPrincipalAccessor.cs | 2 +- .../Security/FakeCurrentPrincipalAccessor.cs | 2 +- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs index 717c578d33..3e21c04538 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/HttpContextCurrentPrincipalAccessor.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.AspNetCore.Security.Claims _httpContextAccessor = httpContextAccessor; } - protected override ClaimsPrincipal GetClaimsPrincipal() + public override ClaimsPrincipal GetClaimsPrincipal() { return _httpContextAccessor.HttpContext?.User ?? base.GetClaimsPrincipal(); } diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs index ad496ba916..a4809631fd 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs @@ -11,7 +11,7 @@ namespace Volo.Abp.Security.Claims private readonly AsyncLocal _currentPrincipal = new AsyncLocal(); - protected virtual ClaimsPrincipal GetClaimsPrincipal() + public virtual ClaimsPrincipal GetClaimsPrincipal() { return Thread.CurrentPrincipal as ClaimsPrincipal; } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs index cb26230b93..a1f3e473ea 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs @@ -27,8 +27,6 @@ namespace Volo.Abp.AspNetCore.Mvc.Authorization { new ClaimsIdentity(_fakeUserClaims.Claims, "FakeSchema") }); - - //_currentPrincipalAccessor.Change(context.User); } await next(context); diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs index 5e6b064875..a6d9aae833 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -8,7 +8,7 @@ namespace MyCompanyName.MyProjectName.Security [Dependency(ReplaceServices = true)] public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - protected override ClaimsPrincipal GetClaimsPrincipal() + public override ClaimsPrincipal GetClaimsPrincipal() { return GetPrincipal(); } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs index 5e6b064875..a6d9aae833 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -8,7 +8,7 @@ namespace MyCompanyName.MyProjectName.Security [Dependency(ReplaceServices = true)] public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - protected override ClaimsPrincipal GetClaimsPrincipal() + public override ClaimsPrincipal GetClaimsPrincipal() { return GetPrincipal(); } From 88f2d83846a032fd92cbd5195a63b04fd22a88a0 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 13 May 2020 11:31:14 +0800 Subject: [PATCH 4/4] Update FakeAuthenticationMiddleware.cs --- .../Mvc/Authorization/FakeAuthenticationMiddleware.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs index a1f3e473ea..5ee6ec5c1f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Authorization/FakeAuthenticationMiddleware.cs @@ -4,19 +4,16 @@ using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; namespace Volo.Abp.AspNetCore.Mvc.Authorization { public class FakeAuthenticationMiddleware : IMiddleware, ITransientDependency { private readonly FakeUserClaims _fakeUserClaims; - private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor; - public FakeAuthenticationMiddleware(FakeUserClaims fakeUserClaims, ICurrentPrincipalAccessor currentPrincipalAccessor) + public FakeAuthenticationMiddleware(FakeUserClaims fakeUserClaims) { _fakeUserClaims = fakeUserClaims; - _currentPrincipalAccessor = currentPrincipalAccessor; } public async Task InvokeAsync(HttpContext context, RequestDelegate next)