From 936f037920ff45b322607a2369f55011057dcfc9 Mon Sep 17 00:00:00 2001 From: Valentin Zakharov Date: Wed, 8 May 2024 12:24:51 +0200 Subject: [PATCH 1/2] Update to libddwaf 1.18.0 --- libddwaf | 2 +- .../java/io/sqreen/powerwaf/Powerwaf.java | 2 +- .../io/sqreen/powerwaf/BasicTests.groovy | 32 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/libddwaf b/libddwaf index 2fcd3cf9..f18e6e28 160000 --- a/libddwaf +++ b/libddwaf @@ -1 +1 @@ -Subproject commit 2fcd3cf94e8df899c349531183bf86d6c32d8490 +Subproject commit f18e6e286f5f62af5c809c4e0a84a9c624553b2c diff --git a/src/main/java/io/sqreen/powerwaf/Powerwaf.java b/src/main/java/io/sqreen/powerwaf/Powerwaf.java index 4534c9d7..30ec6971 100644 --- a/src/main/java/io/sqreen/powerwaf/Powerwaf.java +++ b/src/main/java/io/sqreen/powerwaf/Powerwaf.java @@ -21,7 +21,7 @@ import java.util.Map; public final class Powerwaf { - public static final String LIB_VERSION = "1.17.0"; + public static final String LIB_VERSION = "1.18.0"; private static final Logger LOGGER = LoggerFactory.getLogger(Powerwaf.class); static final boolean ENABLE_BYTE_BUFFERS; diff --git a/src/test/groovy/io/sqreen/powerwaf/BasicTests.groovy b/src/test/groovy/io/sqreen/powerwaf/BasicTests.groovy index 5aba8e76..2c84e9fd 100644 --- a/src/test/groovy/io/sqreen/powerwaf/BasicTests.groovy +++ b/src/test/groovy/io/sqreen/powerwaf/BasicTests.groovy @@ -167,6 +167,38 @@ class BasicTests implements PowerwafTrait { assertThat awd.actions.keySet(), containsInAnyOrder('aaaa', 'block_request', 'bbbb') } + @Test + void 'test actions with various types'() { + def ruleSet = slurper.parseText(JsonOutput.toJson(ARACHNI_ATOM_BLOCK)) + ruleSet.putAt('actions', [ + [ + id: 'block', + parameters: [ + status_code: 201, // integer + type: 'auto', + grpc_status_code: '10', // string + enabled: true, // boolean + test: 'false' // string + ], + type: 'block_request' + ] + ]) + ruleSet['rules'][0]['on_match'] = ['block'] + + ctx = Powerwaf.createContext('test', ruleSet) + + ResultWithData awd = ctx.runRules( + ['server.request.headers.no_cookies': ['user-agent': 'Arachni/v1']], limits, metrics) + assertThat awd.result, is(Powerwaf.Result.MATCH) + assertThat awd.actions.keySet(), contains('block_request') + + assertThat awd.actions.get('block_request').type, is('auto') + assertThat awd.actions.get('block_request').status_code, is('201') + assertThat awd.actions.get('block_request').grpc_status_code, is('10') + assertThat awd.actions.get('block_request').enabled, is('true') + assertThat awd.actions.get('block_request').test, is('false') + } + @Test void 'test with array of string lists'() { def ruleSet = ARACHNI_ATOM_V1_0 From 96917dd4633f2c036c0487a65c8d25bc24f26aa7 Mon Sep 17 00:00:00 2001 From: Valentin Zakharov Date: Wed, 8 May 2024 14:51:21 +0200 Subject: [PATCH 2/2] Fixed libddwaf version number --- .github/workflows/actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 14a11cc7..e9d30b85 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -11,7 +11,7 @@ defaults: env: buildType: RelWithDebInfo tempdir: ${{ github.workspace }}/build - libddwafVersion: 1.17.0 + libddwafVersion: 1.18.0 jobs: Coverage: runs-on: ubuntu-22.04