コード例 #1
0
        internal static object ToJsonModel(Extension extension, Site site, string path)
        {
            if (extension == null)
            {
                return(null);
            }
            ExtensionId extensionId = new ExtensionId(site?.Id, path, extension.FileExtension);

            var obj = new {
                extension         = extension.FileExtension.TrimStart(new char[] { '.' }),
                id                = extensionId.Uuid,
                allow             = extension.Allowed,
                request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path)
            };

            return(Core.Environment.Hal.Apply(Defines.FileExtensionsResource.Guid, obj));
        }
コード例 #2
0
        internal static object ToJsonModel(HiddenSegment segment, Site site, string path)
        {
            if (segment == null)
            {
                return(null);
            }

            SegmentId segmentId = new SegmentId(site?.Id, path, segment.Segment);

            var obj = new {
                segment           = segment.Segment,
                id                = segmentId.Uuid,
                request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path)
            };

            return(Core.Environment.Hal.Apply(Defines.HiddenSegmentsResource.Guid, obj));
        }
コード例 #3
0
        internal static object ToJsonModel(QueryStringRule queryString, Site site, string path)
        {
            if (queryString == null)
            {
                return(null);
            }

            QueryStringId id = new QueryStringId(site?.Id, path, queryString.QueryString);

            var obj = new {
                query_string      = queryString.QueryString,
                id                = id.Uuid,
                allow             = queryString.Allow,
                request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path)
            };

            return(Core.Environment.Hal.Apply(Defines.QueryStringResource.Guid, obj));
        }
コード例 #4
0
        internal static object ToJsonModel(UrlRule url, Site site, string path)
        {
            if (url == null)
            {
                return(null);
            }

            UrlId urlId = new UrlId(site?.Id, path, url.Url);

            var obj = new {
                url               = url.Url,
                id                = urlId.Uuid,
                allow             = url.Allow,
                request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path)
            };

            return(Core.Environment.Hal.Apply(Defines.UrlsResource.Guid, obj));
        }
コード例 #5
0
        internal static object ToJsonModel(HeaderLimit headerLimit, Site site, string path)
        {
            if (headerLimit == null)
            {
                return(null);
            }

            HeaderLimitId id = new HeaderLimitId(site?.Id, path, headerLimit.Header);

            var obj = new {
                header            = headerLimit.Header,
                id                = id.Uuid,
                size_limit        = headerLimit.SizeLimit,
                request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path)
            };

            return(Core.Environment.Hal.Apply(Defines.HeaderLimitsResource.Guid, obj));
        }
コード例 #6
0
        internal static object ToJsonModel(Rule rule, Site site, string path, Fields fields, bool full)
        {
            if (rule == null)
            {
                return(null);
            }

            if (fields == null)
            {
                fields = Fields.All;
            }

            dynamic obj = new ExpandoObject();

            //
            // name
            if (fields.Exists("name"))
            {
                obj.name = rule.Name;
            }

            //
            // id
            obj.id = new RuleId(site?.Id, path, rule.Name).Uuid;

            //
            // scan_url
            if (fields.Exists("scan_url"))
            {
                obj.scan_url = rule.ScanUrl;
            }

            //
            // scan_query_string
            if (fields.Exists("scan_query_string"))
            {
                obj.scan_query_string = rule.ScanQueryString;
            }

            //
            // headers
            if (fields.Exists("headers"))
            {
                obj.headers = rule.ScanHeaders.Select(scanHeader => scanHeader.RequestHeader);
            }

            //
            // file_extensions
            if (fields.Exists("file_extensions"))
            {
                obj.file_extensions = rule.AppliesTo.Select(a => a.FileExtension);
            }

            //
            // deny_strings
            if (fields.Exists("deny_strings"))
            {
                obj.deny_strings = rule.DenyStrings.Select(denyString => denyString.String);
            }

            //
            // request_filtering
            if (fields.Exists("request_filtering"))
            {
                obj.request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path);
            }

            return(Core.Environment.Hal.Apply(Defines.RulesResource.Guid, obj, full));
        }