public static JObject GetGlobalModulesFeature(HttpClient client) { string content; if (!client.Get(GLOBAL_MODULES_URL, out content)) { return(null); } return(Utils.ToJ(content)); }
private static JObject GetScopedFeature(HttpClient client, DelegatableFeature feature, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get($"{Configuration.TEST_SERVER_URL}" + feature.Path + "?scope=" + siteName + path, out content)) { return null; } return Utils.ToJ(content); }
public static JObject GetRequestFilteringFeature(HttpClient client, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get(REQUEST_FILTERING_URL + "?scope=" + siteName + path, out content)) { return(null); } return(Utils.ToJ(content)); }
public static JObject GetIpRestrictionsFeature(HttpClient client, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get(IP_RESTRICTIONS_URL + "?scope=" + siteName + path, out content)) { return(null); } return(Utils.ToJ(content)); }
public static JObject GetCompressionFeature(HttpClient client, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get(COMPRESSION_URL + "?scope=" + siteName + path, out content)) { return(null); } return(Utils.ToJ(content)); }
public static JObject GetDefaultDocumentFeature(HttpClient client, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get(DEFAULT_DOCUMENT_URL + "?scope=" + siteName + path, out content)) { return(null); } return(Utils.ToJ(content)); }
public static JObject GetDirectoryBrowsingFeatrue(HttpClient client, string siteName, string path) { if (path != null) { if (!path.StartsWith("/")) { throw new ArgumentException("path"); } } string content; if (!client.Get(DIRECTORY_BROWSING_URL + "?scope=" + siteName + path, out content)) { return(null); } return(Utils.ToJ(content)); }
public static bool SetEnabled(HttpClient client, JObject docFeature, bool enabled, out JObject document) { document = null; string body = "{ \"enabled\" : \"" + enabled.ToString() + "\" }"; string docContent; if (!client.Patch(Utils.Self(docFeature), body, out docContent)) { return(false); } document = Utils.ToJ(docContent); bool?docEnabled = document.Value <bool?>("enabled"); if (docEnabled == null || docEnabled.Value != enabled) { return(false); } return(true); }
public void CreatePatchRemoveRule() { var TEST_RULE_PATH = "test_rule*.path"; var TEST_RULE_STATUS_CODES = new string[] { "101", "244-245", "280-301", "340" }; var TEST_RULE_MIN_TIME = 100; var TEST_RULE_EVENT_SEVERITY = "error"; var TEST_RULE_PROVIDER_NAME = "ASP"; var TEST_RULE_ALLOWED_AREAS = new Dictionary <string, bool>() { }; var PATCH_PATH = "test_patch*.path"; var PATCH_RULE_STATUS_CODES = new string[] { "104-181", "333" }; var PATCH_RULE_MIN_TIME = 103; var PATCH_RULE_EVENT_SEVERITY = "criticalerror"; var PATCH_RULE_PROVIDER_NAME = "WWW Server"; var PATCH_RULE_ALLOWED_AREAS = new Dictionary <string, bool>() { { "Security", true }, { "Compression", true }, { "Module", true } }; using (var client = ApiHttpClient.Create()) { var feature = GetFeature(client, null, null); var rulesObj = Utils.FollowLink(client, feature, "rules"); var rules = rulesObj.Value <JArray>("rules").ToObject <IEnumerable <JObject> >(); var providersObj = Utils.FollowLink(client, feature, "providers"); var providers = providersObj.Value <JArray>("providers").ToObject <IEnumerable <JObject> >(); // Ensure rule with test path doesn't already exist foreach (var r in rules) { if (r.Value <string>("path").Equals(TEST_RULE_PATH, StringComparison.OrdinalIgnoreCase) || r.Value <string>("path").Equals(PATCH_PATH, StringComparison.OrdinalIgnoreCase)) { Assert.True(client.Delete(Utils.Self(r))); break; } } var testRule = new { path = TEST_RULE_PATH, status_codes = TEST_RULE_STATUS_CODES, min_request_execution_time = TEST_RULE_MIN_TIME, event_severity = TEST_RULE_EVENT_SEVERITY, traces = new [] { new { allowed_areas = TEST_RULE_ALLOWED_AREAS, provider = providers.FirstOrDefault(p => p.Value <string>("name").Equals(TEST_RULE_PROVIDER_NAME)), verbosity = "verbose" } }, request_tracing = feature }; var patchRule = new { path = PATCH_PATH, status_codes = PATCH_RULE_STATUS_CODES, min_request_execution_time = PATCH_RULE_MIN_TIME, event_severity = PATCH_RULE_EVENT_SEVERITY, traces = new[] { new { allowed_areas = PATCH_RULE_ALLOWED_AREAS, provider = providers.FirstOrDefault(p => p.Value <string>("name").Equals(PATCH_RULE_PROVIDER_NAME)), verbosity = "verbose" } }, }; var jRule = JObject.FromObject(testRule); var pRule = JObject.FromObject(patchRule); string result; Assert.True(client.Post(Utils.GetLink(feature, "rules"), JsonConvert.SerializeObject(testRule), out result)); JObject newRule = null; try { newRule = Utils.ToJ(result); CompareRules(jRule, newRule); Assert.True(client.Patch(Utils.Self(newRule), JsonConvert.SerializeObject(patchRule), out result)); newRule = Utils.ToJ(result); CompareRules(pRule, newRule); } finally { Assert.True(client.Delete(Utils.Self(newRule))); } } }
public void CreatePatchRemoveProvider() { var TEST_PROVIDER_NAME = "Test Provider"; var TEST_PROVIDER_GUID = Guid.NewGuid().ToString("B"); var TEST_AREAS = new string[] { "test_area", "test_area2" }; var PATCH_PROVIDER_NAME = "Patch Provider"; var PATCH_PROVIDER_GUID = Guid.NewGuid().ToString("B"); var PATCH_AREAS = new string[] { "patch_area", "patch_area2" }; using (var client = ApiHttpClient.Create()) { var feature = GetFeature(client, null, null); var providersObj = Utils.FollowLink(client, feature, "providers"); var providers = providersObj.Value <JArray>("providers").ToObject <IEnumerable <JObject> >(); foreach (var p in providers) { if (p.Value <string>("name").Equals(TEST_PROVIDER_NAME, StringComparison.OrdinalIgnoreCase) || p.Value <string>("name").Equals(PATCH_PROVIDER_NAME, StringComparison.OrdinalIgnoreCase)) { Assert.True(client.Delete(Utils.Self(p))); break; } } var testProvider = new { name = TEST_PROVIDER_NAME, guid = TEST_PROVIDER_GUID, areas = TEST_AREAS, request_tracing = feature }; var patchProvider = new { name = PATCH_PROVIDER_NAME, guid = PATCH_PROVIDER_GUID, areas = PATCH_AREAS }; var jProvider = JObject.FromObject(testProvider); var pProvider = JObject.FromObject(patchProvider); string result; Assert.True(client.Post(Utils.GetLink(feature, "providers"), JsonConvert.SerializeObject(testProvider), out result)); JObject newProvider = null; try { newProvider = Utils.ToJ(result); CompareProviders(jProvider, newProvider); Assert.True(client.Patch(Utils.Self(newProvider), JsonConvert.SerializeObject(patchProvider), out result)); newProvider = Utils.ToJ(result); CompareProviders(pProvider, newProvider); } finally { Assert.True(client.Delete(Utils.Self(newProvider))); } } }