コード例 #1
0
        public static (bool Result, string PolicyName) AddHelseIdWebAuthentication(this IServiceCollection services,
                                                                                   IHelseIdWebKonfigurasjon helseIdKonfigurasjon,
                                                                                   IRedirectPagesKonfigurasjon redirectPagesKonfigurasjon,
                                                                                   IHprFeatureFlags hprKonfigurasjon,
                                                                                   IWhitelist whitelist,
                                                                                   IHelseIdSecretHandler?secretHandler = null)
        {
            if (!helseIdKonfigurasjon.AuthUse)
            {
                return(false, "");
            }
            services.AddScoped <IHprFactory, HprFactory>();
            services.AddScoped <ICurrentUser, CurrentHttpUser>();

            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
            (var authorizeFilter, string policyName) = AddAuthentication(services, helseIdKonfigurasjon, redirectPagesKonfigurasjon, hprKonfigurasjon, whitelist, secretHandler);
            services.AddControllers(config => config.Filters.Add(authorizeFilter));
            if (helseIdKonfigurasjon.UseHprNumber)
            {
                services.AddScoped <IAuthorizationHandler, HprAuthorizationHandler>();
            }
            if (hprKonfigurasjon.UseHpr && hprKonfigurasjon.UseHprPolicy)
            {
                services.AddScoped <IAuthorizationHandler, HprGodkjenningAuthorizationHandler>();
            }
            return(true, policyName);
        }
コード例 #2
0
 public Analyser(IParser accessLogParser, IWhitelist whitelist, IBlacklist blacklist, IFileSystem fileSystem)
 {
     _accessLogParser = accessLogParser;
     _whitelist       = whitelist;
     _blacklist       = blacklist;
     _fileSystem      = fileSystem;
 }
コード例 #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        IWhitelist whitelisted = collision.GetComponent <IWhitelist>();

        if (whitelisted == null)
        {
            Destroy(collision.gameObject);
        }
    }
コード例 #4
0
ファイル: IBlackWhiteList.cs プロジェクト: Ytrog/RssBandit
        public static void AddWhitelist(IWhitelist whitelist, string content)
        {
            if (blacklists.ContainsKey(whitelist.GetType().Name) == false)
            {
                whitelist.Initialize(content);
                whitelist.UpdateWhitelist();
                whitelists.Add(whitelist.GetType().Name, whitelist);
            }
            else
            {
                // update the whitelist
                IWhitelist refr = whitelists[whitelist.GetType().Name] as IWhitelist;
                refr.Initialize(content);
                ListUpdateState updateState = refr.UpdateWhitelist();

                if (updateState == ListUpdateState.Failed)
                {
                    throw new InvalidOperationException(whitelist + " could not be updated.");
                }
            }
        }
コード例 #5
0
 public HprAuthorizationHandler(IWhitelist whitelist, ILogger <HprAuthorizationHandler> logger)
 {
     this.whitelist = whitelist;
     Logger         = logger;
 }
コード例 #6
0
 public HprGodkjenningAuthorizationHandler(IHprFactory hprFactory, IWhitelist whitelist, ILogger <HprGodkjenningAuthorizationHandler> logger)
 {
     this.whitelist = whitelist;
     _hprFactory    = hprFactory;
     Logger         = logger;
 }
コード例 #7
0
 public BaseRepository(IBudgetManagementContext context, IWhitelist whitelist)
 {
     Context   = context;
     Whitelist = whitelist;
 }
コード例 #8
0
        public static (AuthorizationPolicy AuthPolicy, string PolicyName) AddHelseIdAuthorizationPolicy(this IServiceCollection services,
                                                                                                        IHelseIdHprFeatures helseIdFeatures,
                                                                                                        IHprFeatureFlags hprFeatures,
                                                                                                        IHelseIdWebKonfigurasjon helseIdWebKonfigurasjon,
                                                                                                        IWhitelist whitelist)
        {
            var authenticatedHidUserPolicy = new AuthorizationPolicyBuilder()
                                             .RequireAuthenticatedUser()
                                             .RequireClaim(IdentityClaims.SecurityLevel, helseIdWebKonfigurasjon.SecurityLevels)
                                             .Build();

            if (helseIdFeatures.UseHprNumber)
            {
                var hprNumberPolicyBuilder = new AuthorizationPolicyBuilder()
                                             .Combine(authenticatedHidUserPolicy);
                hprNumberPolicyBuilder.Requirements.Add(new HprAuthorizationRequirement());
                var hprNumberPolicy = hprNumberPolicyBuilder.Build();

                if (hprFeatures.UseHpr && hprFeatures.UseHprPolicy)
                {
                    var policy = new AuthorizationPolicyBuilder()
                                 .Combine(hprNumberPolicy);
                    policy.Requirements.Add(new HprGodkjenningAuthorizationRequirement());
                    var HprGodkjenningPolicy = policy.Build();
                    services.AddAuthorization(config =>
                    {
                        config.AddPolicy(Policies.HidAuthenticated, authenticatedHidUserPolicy);
                        config.AddPolicy(Policies.HprNummer, hprNumberPolicy);
                        config.AddPolicy(Policies.GodkjentHprKategoriPolicy, HprGodkjenningPolicy);
                        config.DefaultPolicy = HprGodkjenningPolicy;
                    });
                    return(HprGodkjenningPolicy, Policies.GodkjentHprKategoriPolicy);
                }

                services.AddAuthorization(config =>
                {
                    config.AddPolicy(Policies.HidAuthenticated, authenticatedHidUserPolicy);
                    config.AddPolicy(Policies.HprNummer, hprNumberPolicy);
                    config.DefaultPolicy = hprNumberPolicy;
                });
                return(hprNumberPolicy, Policies.HprNummer);
            }

            services.AddAuthorization(config =>
            {
                config.AddPolicy(Policies.HidAuthenticated, authenticatedHidUserPolicy);
                config.DefaultPolicy = authenticatedHidUserPolicy;
            });
            return(authenticatedHidUserPolicy, Policies.HidAuthenticated);
        }
コード例 #9
0
        /// <summary>
        /// Normally used by AddHelseIdWebAuthentication
        /// </summary>
        public static (AuthorizeFilter AuthorizeFilter, string PolicyName) AddAuthentication(IServiceCollection services,
                                                                                             IHelseIdWebKonfigurasjon helseIdKonfigurasjon,
                                                                                             IRedirectPagesKonfigurasjon redirectPagesKonfigurasjon,
                                                                                             IHprFeatureFlags hprKonfigurasjon,
                                                                                             IWhitelist whitelist,
                                                                                             IHelseIdSecretHandler?secretHandler = null
                                                                                             )
        {
            const double tokenRefreshBeforeExpirationTime = 2;

            services.AddHelseIdAuthentication()
            .AddCookie(options =>
            {
                options.DefaultHelseIdOptions(helseIdKonfigurasjon, redirectPagesKonfigurasjon);
            })
            .AddOpenIdConnect(HelseIdContext.Scheme, options =>
            {
                options.DefaultHelseIdOptions(helseIdKonfigurasjon, redirectPagesKonfigurasjon, secretHandler);
            })
            .AddAutomaticTokenManagement(options => options.DefaultHelseIdOptions(tokenRefreshBeforeExpirationTime));       // For å kunne ha en lengre sesjon,  håndterer refresh token

            (var authPolicy, string policyName) = services.AddHelseIdAuthorizationPolicy(helseIdKonfigurasjon, hprKonfigurasjon, helseIdKonfigurasjon, whitelist);

            return(new AuthorizeFilter(authPolicy), policyName);
        }