예제 #1
0
 public AccountController(
     IIdentityServerInteractionService interaction,
     IClientStore clientStore,
     IHttpContextAccessor httpContextAccessor,
     IEventService events,
     IAppConfiguration appConfiguration,
     IUserStore userStore,
     ILogger logger,
     IPrincipalSearchService principalSearchService,
     IFabricClaimsService claimsService,
     AccountService accountService,
     GroupFilterService groupFilterService,
     TestUserStore users = null)
 {
     // if the TestUserStore is not in DI, then we'll just use the global users collection
     _users                  = users ?? MakeTestUserStore(appConfiguration);
     _interaction            = interaction;
     _events                 = events;
     _appConfiguration       = appConfiguration;
     _logger                 = logger;
     _principalSearchService = principalSearchService;
     _accountService         = accountService;
     _claimsService          = claimsService;
     _groupFilterService     = groupFilterService;
     _userLoginManager       = new UserLoginManager(userStore, _logger);
 }
예제 #2
0
        public void FilterClaims_NullGroupSettings_ReturnsOriginalClaims()
        {
            var claims = new List <Claim>
            {
                new Claim("role", "Admin")
            };

            var filteredClaims = new GroupFilterService(null).FilterClaims(claims).ToList();

            Assert.Equal(1, filteredClaims.Count);
            Assert.Equal("Admin", filteredClaims[0].Value);
        }
        public void FilterClaims_GroupSettingsNullFilters_ReturnsOriginalClaims()
        {
            var groupMatchSettings = new GroupFilterSettings();

            var claims = new List <Claim>
            {
                new Claim("role", "Admin")
            };

            var filteredClaims = new GroupFilterService(groupMatchSettings).FilterClaims(claims).ToList();

            Assert.Single(filteredClaims);
            Assert.Equal("Admin", filteredClaims[0].Value);
        }
예제 #4
0
        public void FilterClaims_EmptyPrefixesAndSuffixes_ReturnsOriginalClaims()
        {
            var groupMatchSettings = new GroupFilterSettings
            {
                Prefixes = new List <string>(),
                Suffixes = new List <string>()
            };

            var claims = new List <Claim>
            {
                new Claim("role", "Admin")
            };

            var filteredClaims = new GroupFilterService(groupMatchSettings).FilterClaims(claims).ToList();

            Assert.Equal(1, filteredClaims.Count);
            Assert.Equal("Admin", filteredClaims[0].Value);
        }
예제 #5
0
        public void FilterClaims_NoMatchingPrefixesAndSuffixes_ReturnsEmptyClaimList()
        {
            var groupMatchSettings = new GroupFilterSettings
            {
                Prefixes = new List <string>
                {
                    "foo"
                },
                Suffixes = new List <string>
                {
                    "bar"
                }
            };

            var claims = new List <Claim>
            {
                new Claim("role", "Admin")
            };

            var filteredClaims = new GroupFilterService(groupMatchSettings).FilterClaims(claims).ToList();

            Assert.Equal(0, filteredClaims.Count);
        }
예제 #6
0
        public void FilterClaims_MatchingPrefixesAndSuffixes_ReturnsFilteredClaims()
        {
            var groupMatchSettings = new GroupFilterSettings
            {
                Prefixes = new List <string>
                {
                    "Admin",
                    "User",
                    "HC"
                },
                Suffixes = new List <string>
                {
                    "user",
                    "Safety"
                }
            };

            var claims = new List <Claim>
            {
                new Claim("role", "Administrator"),
                new Claim("role", "User"),
                new Claim("role", "NoMatch"),
                new Claim("role", "Superuser"),
                new Claim("role", "HCPatientSafety")
            };

            var filteredClaims = new GroupFilterService(groupMatchSettings).FilterClaims(claims).ToList();

            var claimComparer = new ClaimComparer();

            Assert.Equal(4, filteredClaims.Count);
            Assert.True(filteredClaims.Contains(claims[0], claimComparer));
            Assert.True(filteredClaims.Contains(claims[1], claimComparer));
            Assert.True(filteredClaims.Contains(claims[3], claimComparer));
            Assert.True(filteredClaims.Contains(claims[4], claimComparer));
        }