示例#1
0
        private static bool FilterByTags(FirewallOptions options, ListRule r)
        {
            if (r.Tags == null)
            {
                return(true);
            }

            if (options.IncludedTags != null)
            {
                if (r.Tags.Any(options.IncludedTags.Contains))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            if (options.ExcludedTags != null)
            {
                if (r.Tags.Any(options.ExcludedTags.Contains))
                {
                    return(false);
                }
            }

            return(true);
        }
示例#2
0
        private void FilterRules(FirewallOptions options)
        {
            var filteredRules = AllRules.Where(r => FilterByTags(options, r));

            RequestBody = filteredRules
                          .Where(r => r.Locations.Contains(LocationKind.RequestBody))
                          .ToList();

            ResponseBody = filteredRules
                           .Where(r => r.Locations.Contains(LocationKind.ResponseBody))
                           .ToList();

            Files = filteredRules
                    .Where(r => r.Locations.Contains(LocationKind.PathFileName))
                    .ToList();

            Folders = filteredRules
                      .Where(r => r.Locations.Contains(LocationKind.PathSegment))
                      .ToList();

            Extensions = filteredRules
                         .Where(r => r.Locations.Contains(LocationKind.PathFileNameExtension))
                         .ToList();

            UserAgents = filteredRules
                         .Where(r => r.Locations.Contains(LocationKind.RequestHeaderUserAgent))
                         .ToList();

            FormFileName = filteredRules
                           .Where(r => r.Locations.Contains(LocationKind.RequestFormFileName))
                           .ToList();

            FormFileNameExtension = filteredRules
                                    .Where(r => r.Locations.Contains(LocationKind.RequestFormFileNameExtension))
                                    .ToList();
        }