-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathCreateApplicationSecurityWafCustomRule.java
More file actions
98 lines (94 loc) · 5.98 KB
/
CreateApplicationSecurityWafCustomRule.java
File metadata and controls
98 lines (94 loc) · 5.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Create a WAF custom rule returns "Created" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ApplicationSecurityApi;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleAction;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleActionAction;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleActionParameters;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleCondition;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionInput;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionInputAddress;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionOperator;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionOptions;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionParameters;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleConditionParametersType;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleCreateAttributes;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleCreateData;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleCreateRequest;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleResponse;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleScope;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleTags;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleTagsCategory;
import com.datadog.api.client.v2.model.ApplicationSecurityWafCustomRuleType;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
ApplicationSecurityApi apiInstance = new ApplicationSecurityApi(defaultClient);
ApplicationSecurityWafCustomRuleCreateRequest body =
new ApplicationSecurityWafCustomRuleCreateRequest()
.data(
new ApplicationSecurityWafCustomRuleCreateData()
.attributes(
new ApplicationSecurityWafCustomRuleCreateAttributes()
.action(
new ApplicationSecurityWafCustomRuleAction()
.action(
ApplicationSecurityWafCustomRuleActionAction.BLOCK_REQUEST)
.parameters(
new ApplicationSecurityWafCustomRuleActionParameters()
.location("/blocking")
.statusCode(403L)))
.blocking(false)
.conditions(
Collections.singletonList(
new ApplicationSecurityWafCustomRuleCondition()
.operator(
ApplicationSecurityWafCustomRuleConditionOperator
.MATCH_REGEX)
.parameters(
new ApplicationSecurityWafCustomRuleConditionParameters()
.data("blocked_users")
.inputs(
Collections.singletonList(
new ApplicationSecurityWafCustomRuleConditionInput()
.address(
ApplicationSecurityWafCustomRuleConditionInputAddress
.SERVER_DB_STATEMENT)))
.options(
new ApplicationSecurityWafCustomRuleConditionOptions()
.caseSensitive(false)
.minLength(0L))
.regex("path.*")
.type(
ApplicationSecurityWafCustomRuleConditionParametersType
.STRING)
.value("custom_tag"))))
.enabled(false)
.name("Block request from a bad useragent")
.pathGlob("/api/search/*")
.scope(
Collections.singletonList(
new ApplicationSecurityWafCustomRuleScope()
.env("prod")
.service("billing-service")))
.tags(
new ApplicationSecurityWafCustomRuleTags()
.category(
ApplicationSecurityWafCustomRuleTagsCategory.BUSINESS_LOGIC)
.type("users.login.success")))
.type(ApplicationSecurityWafCustomRuleType.CUSTOM_RULE));
try {
ApplicationSecurityWafCustomRuleResponse result =
apiInstance.createApplicationSecurityWafCustomRule(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling ApplicationSecurityApi#createApplicationSecurityWafCustomRule");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}