1
1
package com.datadog.appsec.ddwaf
2
2
3
+ import com.datadog.ddwaf.WafErrorCode as LibWafErrorCode
4
+ import datadog.trace.api.telemetry.WafMetricCollector.WafErrorCode as InternalWafErrorCode
5
+
3
6
import com.datadog.appsec.AppSecModule
4
7
import com.datadog.appsec.config.AppSecConfig
5
8
import com.datadog.appsec.config.AppSecData
@@ -17,7 +20,6 @@ import com.datadog.appsec.event.data.MapDataBundle
17
20
import com.datadog.appsec.gateway.AppSecRequestContext
18
21
import com.datadog.appsec.gateway.GatewayContext
19
22
import com.datadog.appsec.report.AppSecEvent
20
- import com.datadog.ddwaf.WafErrorCode
21
23
import com.datadog.ddwaf.exception.AbstractWafException
22
24
import com.datadog.ddwaf.exception.InternalWafException
23
25
import com.datadog.ddwaf.exception.InvalidArgumentWafException
@@ -1790,7 +1792,7 @@ class WAFModuleSpecification extends DDSpecification {
1790
1792
0 * _
1791
1793
1792
1794
where :
1793
- wafErrorCode << WafErrorCode . values()
1795
+ wafErrorCode << LibWafErrorCode . values()
1794
1796
}
1795
1797
1796
1798
void ' test wafErrorCode metric is increased when waf call throws #wafErrorCode ' () {
@@ -1819,21 +1821,30 @@ class WAFModuleSpecification extends DDSpecification {
1819
1821
0 * _
1820
1822
1821
1823
where :
1822
- wafErrorCode << WafErrorCode . values()
1824
+ wafErrorCode << LibWafErrorCode . values()
1825
+ }
1826
+
1827
+ def ' internal-api WafErrorCode enum matches libddwaf-java by name and code' () {
1828
+ given :
1829
+ def libddwaf = com.datadog.ddwaf.WafErrorCode . values(). collectEntries { [it. name(), it. code] }
1830
+ def internal = datadog.trace.api.telemetry.WafMetricCollector.WafErrorCode . values(). collectEntries { [it. name(), it. code] }
1831
+
1832
+ expect :
1833
+ internal == libddwaf
1823
1834
}
1824
1835
1825
1836
/**
1826
1837
* Helper to return a concrete Waf exception for each WafErrorCode
1827
1838
*/
1828
- static AbstractWafException createWafException (WafErrorCode code ) {
1839
+ static AbstractWafException createWafException (LibWafErrorCode code ) {
1829
1840
switch (code) {
1830
- case WafErrorCode . INVALID_ARGUMENT :
1841
+ case LibWafErrorCode . INVALID_ARGUMENT :
1831
1842
return new InvalidArgumentWafException (code. code)
1832
- case WafErrorCode . INVALID_OBJECT :
1843
+ case LibWafErrorCode . INVALID_OBJECT :
1833
1844
return new InvalidObjectWafException (code. code)
1834
- case WafErrorCode . INTERNAL_ERROR :
1845
+ case LibWafErrorCode . INTERNAL_ERROR :
1835
1846
return new InternalWafException (code. code)
1836
- case WafErrorCode . BINDING_ERROR :
1847
+ case LibWafErrorCode . BINDING_ERROR :
1837
1848
return new UnclassifiedWafException (code. code)
1838
1849
default :
1839
1850
throw new IllegalStateException (" Unhandled WafErrorCode: $code " )
0 commit comments