summaryrefslogtreecommitdiffstats
path: root/tests/imhttp-post-payload-basic-auth.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:28:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:28:20 +0000
commitdcc721a95bef6f0d8e6d8775b8efe33e5aecd562 (patch)
tree66a2774cd0ee294d019efd71d2544c70f42b2842 /tests/imhttp-post-payload-basic-auth.sh
parentInitial commit. (diff)
downloadrsyslog-dcc721a95bef6f0d8e6d8775b8efe33e5aecd562.tar.xz
rsyslog-dcc721a95bef6f0d8e6d8775b8efe33e5aecd562.zip
Adding upstream version 8.2402.0.upstream/8.2402.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/imhttp-post-payload-basic-auth.sh')
-rwxr-xr-xtests/imhttp-post-payload-basic-auth.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/imhttp-post-payload-basic-auth.sh b/tests/imhttp-post-payload-basic-auth.sh
new file mode 100755
index 0000000..e88e7a4
--- /dev/null
+++ b/tests/imhttp-post-payload-basic-auth.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+# This is part of the rsyslog testbench, licensed under ASL 2.0
+
+. ${srcdir:=.}/diag.sh init
+generate_conf
+IMHTTP_PORT="$(get_free_port)"
+add_conf '
+template(name="outfmt" type="list") {
+ property(name="msg")
+ constant(value=" - ")
+ constant(value="{ baz: ")
+ property(name="$!metadata!httpheaders!baz")
+ constant(value=", daddle: ")
+ property(name="$!metadata!httpheaders!daddle")
+ constant(value=", fiddle: ")
+ property(name="$!metadata!httpheaders!fiddle")
+ constant(value=" }")
+ constant(value=" - ")
+ constant(value=" !metadata: ")
+ property(name="$!metadata")
+ constant(value="\n")
+}
+
+#
+# note htpasswd file contains entry:
+# user1:1234
+#
+module(load="../contrib/imhttp/.libs/imhttp"
+ ports="'$IMHTTP_PORT'")
+input(type="imhttp" endpoint="/postrequest"
+ ruleset="ruleset"
+ addmetadata="on"
+ basicauthfile="'$srcdir'/testsuites/htpasswd")
+ruleset(name="ruleset") {
+ action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt")
+}
+'
+startup
+# validate invalid passwd
+ret=$(curl -v -s -H Content-Type:application/json -H "BAZ: skat" -H "daddle: doodle" -H "fiddle: faddle" \
+ --user user1:badpass --write-out '%{http_code}' \
+ http://localhost:$IMHTTP_PORT/postrequest -d '[{"foo":"bar","bar":"foo"},{"one":"two","three":"four"}]')
+
+echo "response: $ret"
+if ! ( echo "$ret" | grep "Error 401: Unauthorized" )
+then
+ echo "ERROR: should not be unauthorized"
+ error_exit 1
+fi
+
+# validate correct password
+curl -s -H Content-Type:application/json -H "BAZ: skat" -H "daddle: doodle" -H "fiddle: faddle" \
+ --user user1:1234 --write-out '%{http_code}' \
+ http://localhost:$IMHTTP_PORT/postrequest -d '[{"foo":"bar","bar":"foo"},{"one":"two","three":"four"}]'
+
+wait_queueempty
+echo "doing shutdown"
+shutdown_when_empty
+wait_shutdown
+echo "file name: $RSYSLOG_OUT_LOG"
+content_check '[{"foo":"bar","bar":"foo"},{"one":"two","three":"four"}] - { baz: skat, daddle: doodle, fiddle: faddle }'
+exit_test