private void InitializeRequestFilter(IRequestFilter requestFilter)
        {
            if (settings.Filter.ProcessContentRequests || settings.Filter.ProcessMainRequests)
            {
                var factory = new RuleFactory();

                foreach (var settings in settings.Filter.Rules)
                {
                    var rule = factory.CreateRule(settings.Type);

                    rule.Initialize(settings);
                    requestFilter.Load(rule);
                }

                logger.Debug($"Initialized request filter with {settings.Filter.Rules.Count} rule(s).");

                if (requestFilter.Process(new Request {
                    Url = settings.StartUrl
                }) != FilterResult.Allow)
                {
                    var rule = factory.CreateRule(FilterRuleType.Simplified);

                    rule.Initialize(new FilterRuleSettings {
                        Expression = settings.StartUrl, Result = FilterResult.Allow
                    });
                    requestFilter.Load(rule);

                    logger.Debug($"Automatically created filter rule to allow start URL{(WindowSettings.UrlPolicy.CanLog() ? $" '{settings.StartUrl}'" : "")}.");
                }
            }
        }
Exemplo n.º 2
0
        private void InitializeRequestFilter(IRequestFilter requestFilter)
        {
            var factory = new RuleFactory();

            foreach (var item in appSettings.AllowedUrlRegexps)
            {
                var rule = factory.CreateRule(FilterRuleType.Regex);
                rule.Initialize(new FilterRuleSettings {
                    Expression = item, Result = FilterResult.Allow
                });
                requestFilter.Load(rule);
            }
            foreach (var item in appSettings.AllowedUrls)
            {
                var rule = factory.CreateRule(FilterRuleType.Simplified);
                rule.Initialize(new FilterRuleSettings {
                    Expression = item, Result = FilterResult.Allow
                });
                requestFilter.Load(rule);
            }

            if (requestFilter.Process(new Request {
                Url = startUrl
            }) != FilterResult.Allow)
            {
                var rule = factory.CreateRule(FilterRuleType.Simplified);
                rule.Initialize(new FilterRuleSettings {
                    Expression = startUrl, Result = FilterResult.Allow
                });
                requestFilter.Load(rule);
                logger.Debug($"Automatically created filter rule to allow start URL '{startUrl}'.");
            }
        }