nsswitch:tests: Add test to check correct group lookup with samlogon cache
authorAndreas Schneider <asn@samba.org>
Wed, 15 Jan 2020 15:29:24 +0000 (16:29 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 24 Jan 2020 17:18:38 +0000 (17:18 +0000)
TEST FOR: https://bugzilla.samba.org/show_bug.cgi?id=14124

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Jan 24 17:18:38 UTC 2020 on sn-devel-184

nsswitch/tests/test_wbinfo_user_info_cached.sh [new file with mode: 0755]
source3/selftest/tests.py

diff --git a/nsswitch/tests/test_wbinfo_user_info_cached.sh b/nsswitch/tests/test_wbinfo_user_info_cached.sh
new file mode 100755 (executable)
index 0000000..5b451fd
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Blackbox test for wbinfo primary groups and samlogon caching
+# Copyright (c) 2020 Andreas Schneider <asn@samba.org>
+
+if [ $# -lt 5 ]; then
+cat <<EOF
+Usage: $(basename $0) DOMAIN REALM USERNAME PASSWORD PRIMARY_GROUP
+EOF
+exit 1;
+fi
+
+DOMAIN=$1
+REALM=$2
+USERNAME=$3
+PASSWORD=$4
+PRIMARY_GROUP=$5
+shift 5
+
+DEFAULT_GROUP="Domain Users"
+
+failed=0
+
+samba_bindir="$BINDIR"
+wbinfo_tool="$VALGRIND $samba_bindir/wbinfo"
+net_tool="$VALGRIND $samba_bindir/net -s $SERVERCONFFILE"
+
+. $(dirname $0)/../../testprogs/blackbox/subunit.sh
+
+KRB5CCNAME_PATH="$PREFIX/test_wbinfo_user_info_cached_krb5ccache"
+rm -f $KRB5CCNAME_PATH
+
+KRB5CCNAME="FILE:$KRB5CCNAME_PATH"
+export KRB5CCNAME
+
+USER="$DOMAIN/$USERNAME"
+USER_SID=$($wbinfo_tool --name-to-sid="$USER" | sed -e 's/ .*//')
+
+testit_grep "user_info.no_cache" "$DEFAULT_GROUP" $wbinfo_tool --user-info=$USER || failed=$(expr $failed + 1)
+
+# Fill the samlogon cache
+testit "kerberos_login" $wbinfo_tool --krb5ccname=$KRB5CCNAME --krb5auth=$USER%$PASSWORD || failed=$(expr $failed + 1)
+
+testit_grep "user_info.samlogon_cache" "$PRIMARY_GROUP" $wbinfo_tool --user-info=$USER || failed=$(expr $failed + 1)
+
+# Cleanup
+$net_tool cache samlogon delete $USER_SID
+
+rm -f $KRB5CCNAME_PATH
+
+exit $failed
index ca427cc0c7c29697030256cce5f0be6b7b1a30ea..1dc7ceef23b8b7dcee4c3eac7b2da68b5306dc31 100755 (executable)
@@ -278,6 +278,16 @@ plantestsuite("samba3.wbinfo_name_lookup", env,
                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
                '$DOMAIN', '$REALM', '$DC_USERNAME'])
 
+env = "ad_member"
+plantestsuite("samba3.wbinfo_user_info_cached", env,
+              [os.path.join(srcdir(),
+                            "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
+               '$DOMAIN', '$REALM', 'joe', 'Secret007', '"Samba Users"', env])
+plantestsuite("samba3.wbinfo_user_info_cached.trustdom", env,
+              [os.path.join(srcdir(),
+                            "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
+               '$TRUST_F_BOTH_DOMAIN', '$TRUST_F_BOTH_REALM', 'joe', 'Secret007', '"Samba Users"', env])
+
 env = "ad_member:local"
 plantestsuite("samba3.wbinfo_user_info", env,
               [os.path.join(srcdir(),