auth logging tests: Add tests for sessionId
authorGary Lockyer <gary@catalyst.net.nz>
Sun, 29 Apr 2018 21:13:58 +0000 (09:13 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 10 May 2018 18:02:23 +0000 (20:02 +0200)
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/auth_log.py
python/samba/tests/auth_log_base.py
python/samba/tests/auth_log_ncalrpc.py
python/samba/tests/auth_log_netlogon.py
python/samba/tests/auth_log_netlogon_bad_creds.py
python/samba/tests/auth_log_samlogon.py

index 9e68c4fa38ea3704d68aa6b03b3c5bac1b3c43a9..34312cb49c79aa1a0a668c60c5256254b5309ab8 100644 (file)
@@ -94,6 +94,7 @@ class AuthLogTests(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals(authTypes[2], msg["Authorization"]["authType"])
         self.assertEquals("SMB", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
         # Check the third message it should be an Authentication
         # if we are expecting 4 messages
@@ -148,6 +149,7 @@ class AuthLogTests(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals(authTypes[3], msg["Authorization"]["authType"])
         self.assertEquals("SMB", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
 
     def test_rpc_ncacn_np_ntlm_dns_sign(self):
@@ -277,6 +279,7 @@ class AuthLogTests(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals(authTypes[1], msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
         # Check the second message it should be an Authentication
         msg = messages[1]
@@ -301,6 +304,7 @@ class AuthLogTests(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals(authTypes[1], msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
         # Check the second message it should be an Authentication
         msg = messages[1]
@@ -1313,3 +1317,4 @@ class AuthLogTests(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals("schannel",  msg["Authorization"]["authType"])
         self.assertEquals("SEAL", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
index 6c1baea9df7ba16244ba07520229839bfe0c4193..5bb98219bba805c0ac0f57e8c6d8bb2bb613aae1 100644 (file)
@@ -27,6 +27,7 @@ from samba.dcerpc import srvsvc, dnsserver
 import time
 import json
 import os
+import re
 from samba import smb
 from samba.samdb import SamDB
 
@@ -120,3 +121,10 @@ class AuthLogTestBase(samba.tests.TestCase):
             return sd != "NETLOGON"
 
         return list(filter(is_not_netlogon, messages))
+
+    GUID_RE = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
+    #
+    # Is the supplied GUID string correctly formatted
+    #
+    def is_guid(self, guid):
+        return re.match(self.GUID_RE, guid)
index be7f6b2b6c249eb7b09b3797027a852872d08cce..2f61cc5c672b779323b39a8fe2883b55c1c78591 100644 (file)
@@ -74,6 +74,7 @@ class AuthLogTestsNcalrpc(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals(authTypes[1], msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
         # Check the second message it should be an Authentication
         msg = messages[1]
index 228fbe9b14dbadad4d7c6863e10f1ed9a0f1b9ce..9b0512d8c5b946f1f8ac5a10dab99b967f38f08a 100644 (file)
@@ -114,6 +114,7 @@ class AuthLogTestsNetLogon(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals("ncalrpc", msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
         # Check the fourth message it should be a NETLOGON Authentication
         msg = messages[3]
index 2bae02e21baf615e1942ec8f697e9c874f17dfc5..c18d270ed82f16912c2e70dbfa23c0b78b95e4a3 100644 (file)
@@ -115,6 +115,7 @@ class AuthLogTestsNetLogonBadCreds(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals("ncalrpc", msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
     def test_netlogon_bad_machine_name(self):
         self._test_netlogon("bad_name",
index a3a9f50ecfc210d3076b94d2309e3875bbbf9d23..105a16dea91f082fa4b277c0dd03d3de14cd590b 100644 (file)
@@ -171,6 +171,7 @@ class AuthLogTestsSamLogon(samba.tests.auth_log_base.AuthLogTestBase):
                           msg["Authorization"]["serviceDescription"])
         self.assertEquals("ncalrpc", msg["Authorization"]["authType"])
         self.assertEquals("NONE", msg["Authorization"]["transportProtection"])
+        self.assertTrue(self.is_guid(msg["Authorization"]["sessionId"]))
 
 
     def test_ncalrpc_samlogon(self):