tests/ntlm_auth: Port ntlm_auth tests to python: ntlm_auth plaintext authentication...
authorSamuel Cabrero <scabrero@suse.de>
Fri, 31 Aug 2018 16:24:56 +0000 (18:24 +0200)
committerNoel Power <npower@samba.org>
Wed, 19 Dec 2018 11:42:12 +0000 (12:42 +0100)
Port ntlm_auth bash script tests to python

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Noel Power <npower@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/ntlm_auth.py
source3/script/tests/test_ntlm_auth_s3.sh

index 089f30933def3f09f823c1817ad559c845e1fbd7..f62165b626ab0ab344c68c98117d6cc0c420d84c 100644 (file)
@@ -178,3 +178,17 @@ class NTLMAuthHelpersTests(NTLMAuthTestCase):
                               server_helper="gss-spnego",
                               server_use_winbind=True)
         self.assertFalse(ret)
+
+    def test_plaintext_with_membership(self):
+        """ ntlm_auth plaintext authentication with require-membership-of """
+
+        proc = Popen([self.ntlm_auth_path,
+                      "--require-membership-of", self.group_sid,
+                      "--helper-protocol", "squid-2.5-basic"],
+                      stdout=PIPE, stdin=PIPE, stderr=PIPE)
+        creds = "%s%s%s %s\n" % (self.domain, self.winbind_separator,
+                                 self.username,
+                                 self.password)
+        (out, err) = proc.communicate(input=creds.encode('utf-8'))
+        self.assertEqual(proc.returncode, 0)
+        self.assertTrue(out.startswith(b"OK\n"))
index 3b3c5dfe7efdad2e8234fed1de5740c90dbe6589..2a4942bb9f52f2b64ed85875474c2c49150106b9 100755 (executable)
@@ -24,37 +24,6 @@ BADSID=`eval $BINDIR/wbinfo -n $USERNAME | cut -d ' ' -f1 | sed 's/..$//'`
 
 failed=0
 
-test_plaintext_check_output_stdout()
-{
-       tmpfile=$PREFIX/ntlm_commands
-
-       cat > $tmpfile <<EOF
-$DOMAIN/$USERNAME $PASSWORD
-EOF
-       cmd='$NTLM_AUTH "$@" --require-membership-of=$SID --helper-protocol=squid-2.5-basic < $tmpfile 2>&1'
-       eval echo "$cmd"
-       out=`eval $cmd`
-       ret=$?
-       rm -f $tmpfile
-
-       if [ $ret != 0 ] ; then
-               echo "$out"
-               echo "command failed"
-               false
-               return
-       fi
-
-       echo "$out" | grep "OK" >/dev/null 2>&1
-
-       if [ $? = 0 ] ; then
-               # authenticated .. succeed
-               true
-       else
-               echo failed to get successful authentication
-               false
-       fi
-}
-
 test_plaintext_check_output_fail()
 {
        tmpfile=$PREFIX/ntlm_commands
@@ -269,7 +238,6 @@ EOF
 }
 
 # This should work even with NTLMv2
-testit "ntlm_auth plaintext authentication with require-membership-of" test_plaintext_check_output_stdout || failed=`expr $failed + 1`
 testit "ntlm_auth plaintext authentication with failed require-membership-of" test_plaintext_check_output_fail || failed=`expr $failed + 1`
 
 testit "ntlm_auth ntlm-server-1 with fixed password" test_ntlm_server_1_check_output || failed=`expr $failed + 1`