]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
test: Add a test-case for EXTERNAL auth rejecting usernames
authorSimon McVittie <smcv@collabora.com>
Fri, 12 Jan 2018 16:52:58 +0000 (16:52 +0000)
committerSimon McVittie <smcv@collabora.com>
Mon, 15 Jan 2018 14:05:34 +0000 (14:05 +0000)
Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=104588

test/Makefile.am
test/data/auth/external-username.auth-script [new file with mode: 0644]

index e40088ffa918580676471f93c9421702aebc9bfe..3ed2880bf6524ec3a30ed624cc933519cd4d07b0 100644 (file)
@@ -477,6 +477,7 @@ static_data = \
        data/auth/external-root.auth-script \
        data/auth/external-silly.auth-script \
        data/auth/external-successful.auth-script \
+       data/auth/external-username.auth-script \
        data/auth/extra-bytes.auth-script \
        data/auth/fail-after-n-attempts.auth-script \
        data/auth/fallback.auth-script \
diff --git a/test/data/auth/external-username.auth-script b/test/data/auth/external-username.auth-script
new file mode 100644 (file)
index 0000000..cd417f4
--- /dev/null
@@ -0,0 +1,24 @@
+# Assert that EXTERNAL authentication accepts numeric uids, but not
+# login names.
+
+# This only works on Unix because USERNAME_HEX is unimplemented on Windows
+# (but no authentication mechanism uses usernames there anyway).
+UNIX_ONLY
+SERVER
+EXPECT_HAVE_NO_CREDENTIALS
+
+# C: "I claim that I am smcv"
+SEND 'AUTH EXTERNAL USERNAME_HEX'
+# S: (doesn't want to look up smcv in NSS or /etc/passwd)
+EXPECT_COMMAND REJECTED
+EXPECT_STATE WAITING_FOR_INPUT
+EXPECT_HAVE_NO_CREDENTIALS
+
+# C: "OK, how about I claim that I am uid 1000?"
+SEND 'AUTH EXTERNAL USERID_HEX'
+# S: (is happier)
+EXPECT_COMMAND OK
+EXPECT_STATE WAITING_FOR_INPUT
+SEND 'BEGIN'
+EXPECT_STATE AUTHENTICATED
+EXPECT_HAVE_SOME_CREDENTIALS