From 5970d04af540af4825958272cba950c0b7dff15d Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 13 Feb 2003 04:11:57 +0000 Subject: 2003-02-13 Havoc Pennington * dbus/dbus-auth.c (handle_server_data_external_mech): args to dbus_credentials_match were backward * dbus/dbus-auth-script.c (_dbus_auth_script_run): support NO_CREDENTIALS and ROOT_CREDENTIALS * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine into here. Never process more commands after we've reached an end state; store further data as unused bytes. * test/data/auth/*: add more auth tests * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT command to match exact string and EXPECT_UNUSED to match unused bytes * test/Makefile.am (dist-hook): fix to dist all the test stuff --- test/Makefile.am | 18 +++++++++--------- test/data/auth/external-failed.auth-script | 8 ++++++++ test/data/auth/external-root.auth-script | 10 ++++++++++ test/data/auth/external-silly.auth-script | 8 ++++++++ test/data/auth/external-successful.auth-script | 9 +++++++++ test/data/auth/extra-bytes.auth-script | 10 ++++++++++ 6 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 test/data/auth/external-failed.auth-script create mode 100644 test/data/auth/external-root.auth-script create mode 100644 test/data/auth/external-silly.auth-script create mode 100644 test/data/auth/external-successful.auth-script create mode 100644 test/data/auth/extra-bytes.auth-script (limited to 'test') diff --git a/test/Makefile.am b/test/Makefile.am index 972d67cf..4ff6c49d 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -37,13 +37,13 @@ unbase64_LDADD=$(TEST_LIBS) break_loader_LDADD= $(TEST_LIBS) bus_test_LDADD=$(TEST_LIBS) $(top_builddir)/bus/libdbus-daemon.la -dist-hook: - DIRS="data data/valid-messages data/invalid-messages data/incomplete-messages" ; \ - for D in $$DIRS; do \ - test -d $(distdir)/$$D || mkdir $(distdir)/$$D ; \ - done ; \ - FILES=`find -name "*.message"` ; \ - for F in $$FILES; do \ - echo '-- Disting file '$$F ; \ - cp $$F $(distdir)/$$F ; \ +dist-hook: \ + DIRS="data data/valid-messages data/invalid-messages data/incomplete-messages data/auth" ; \ + for D in $$DIRS; do \ + test -d $(distdir)/$$D || mkdir $(distdir)/$$D ; \ + done ; \ + FILES=`find -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script"` ; \ + for F in $$FILES; do \ + echo '-- Disting file '$$F ; \ + cp $$F $(distdir)/$$F ; \ done diff --git a/test/data/auth/external-failed.auth-script b/test/data/auth/external-failed.auth-script new file mode 100644 index 00000000..f5723521 --- /dev/null +++ b/test/data/auth/external-failed.auth-script @@ -0,0 +1,8 @@ +## this tests that auth of type EXTERNAL without credentials will fail + +SERVER +NO_CREDENTIALS +SEND 'AUTH EXTERNAL USERNAME_BASE64' +EXPECT_COMMAND REJECTED +EXPECT_STATE WAITING_FOR_INPUT + diff --git a/test/data/auth/external-root.auth-script b/test/data/auth/external-root.auth-script new file mode 100644 index 00000000..720b7e51 --- /dev/null +++ b/test/data/auth/external-root.auth-script @@ -0,0 +1,10 @@ +## this tests we can auth EXTERNAL as ourselves, with root credentials + +SERVER +ROOT_CREDENTIALS +SEND 'AUTH EXTERNAL USERNAME_BASE64' +EXPECT_COMMAND OK +EXPECT_STATE WAITING_FOR_INPUT +SEND 'BEGIN' +EXPECT_STATE AUTHENTICATED + diff --git a/test/data/auth/external-silly.auth-script b/test/data/auth/external-silly.auth-script new file mode 100644 index 00000000..3e12c153 --- /dev/null +++ b/test/data/auth/external-silly.auth-script @@ -0,0 +1,8 @@ +## this tests we can't auth with silly credentials + +SERVER +SILLY_CREDENTIALS +SEND 'AUTH EXTERNAL USERNAME_BASE64' +EXPECT_COMMAND REJECTED +EXPECT_STATE WAITING_FOR_INPUT + diff --git a/test/data/auth/external-successful.auth-script b/test/data/auth/external-successful.auth-script new file mode 100644 index 00000000..1b380802 --- /dev/null +++ b/test/data/auth/external-successful.auth-script @@ -0,0 +1,9 @@ +## this tests a successful auth of type EXTERNAL + +SERVER +SEND 'AUTH EXTERNAL USERNAME_BASE64' +EXPECT_COMMAND OK +EXPECT_STATE WAITING_FOR_INPUT +SEND 'BEGIN' +EXPECT_STATE AUTHENTICATED + diff --git a/test/data/auth/extra-bytes.auth-script b/test/data/auth/extra-bytes.auth-script new file mode 100644 index 00000000..df8df52b --- /dev/null +++ b/test/data/auth/extra-bytes.auth-script @@ -0,0 +1,10 @@ +## this tests that we have the expected extra bytes at the end + +SERVER +SEND 'AUTH EXTERNAL USERNAME_BASE64' +EXPECT_COMMAND OK +EXPECT_STATE WAITING_FOR_INPUT +SEND 'BEGIN\r\nHello' +EXPECT_STATE AUTHENTICATED_WITH_UNUSED_BYTES +EXPECT_UNUSED 'Hello\r\n' +EXPECT_STATE AUTHENTICATED -- cgit