⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldap.py

📁 samba最新软件
💻 PY
📖 第 1 页 / 共 3 页
字号:
        self.assertEquals(res[0]["memberOf"][0], "CN=ldaptestgroup2,CN=Users," + self.base_dn)        self.assertEquals(len(res[0]["memberOf"]), 1)        print "Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + "))"        res2 = ldb.search(expression="(&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + "))")        self.assertEquals(len(res2), 1, "Could not find (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + "))")        self.assertEquals(res[0].dn, res2[0].dn)        if gc_ldb is not None:            print "Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + ")) in Global Catlog"            res2gc = gc_ldb.search(expression="(&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + "))")            self.assertEquals(len(res2gc), 1, "Could not find (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + self.base_dn + ")) in Global Catlog")            self.assertEquals(res[0].dn, res2gc[0].dn)        print "Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=compuTER))"        res3 = ldb.search(expression="(&(cn=ldaptestcomputer)(objectCategory=compuTER))")        self.assertEquals(len(res3), 1, "Could not find (&(cn=ldaptestcomputer)(objectCategory=compuTER))")        self.assertEquals(res[0].dn, res3[0].dn)        if gc_ldb is not None:            print "Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=compuTER)) in Global Catalog"            res3gc = gc_ldb.search(expression="(&(cn=ldaptestcomputer)(objectCategory=compuTER))")            self.assertEquals(len(res3gc), 1, "Could not find (&(cn=ldaptestcomputer)(objectCategory=compuTER)) in Global Catalog")            self.assertEquals(res[0].dn, res3gc[0].dn)        print "Testing ldb.search for (&(cn=ldaptestcomp*r)(objectCategory=compuTER))"        res4 = ldb.search(expression="(&(cn=ldaptestcomp*r)(objectCategory=compuTER))")        self.assertEquals(len(res4), 1, "Could not find (&(cn=ldaptestcomp*r)(objectCategory=compuTER))")        self.assertEquals(res[0].dn, res4[0].dn)        print "Testing ldb.search for (&(cn=ldaptestcomput*)(objectCategory=compuTER))"        res5 = ldb.search(expression="(&(cn=ldaptestcomput*)(objectCategory=compuTER))")        self.assertEquals(len(res5), 1, "Could not find (&(cn=ldaptestcomput*)(objectCategory=compuTER))")        self.assertEquals(res[0].dn, res5[0].dn)        print "Testing ldb.search for (&(cn=*daptestcomputer)(objectCategory=compuTER))"        res6 = ldb.search(expression="(&(cn=*daptestcomputer)(objectCategory=compuTER))")        self.assertEquals(len(res6), 1, "Could not find (&(cn=*daptestcomputer)(objectCategory=compuTER))")        self.assertEquals(res[0].dn, res6[0].dn)        ldb.delete(res[0].dn)        print "Testing ldb.search for (&(cn=ldaptest2computer)(objectClass=user))"        res = ldb.search(expression="(&(cn=ldaptest2computer)(objectClass=user))")        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptest2computer)(objectClass=user))")        self.assertEquals(res[0].dn, ("CN=ldaptest2computer,CN=Computers," + self.base_dn))        self.assertEquals(res[0]["cn"], "ldaptest2computer")        self.assertEquals(res[0]["name"], "ldaptest2computer")        self.assertEquals(res[0]["objectClass"], ["top", "person", "organizationalPerson", "user", "computer"])        self.assertTrue("objectGUID" in res[0])        self.assertTrue("whenCreated" in res[0])        self.assertEquals(res[0]["objectCategory"][0], "CN=Computer,CN=Schema,CN=Configuration," + self.base_dn)        self.assertEquals(int(res[0]["sAMAccountType"][0]), 805306369)    #    self.assertEquals(res[0].userAccountControl, 4098)        ldb.delete(res[0].dn)        attrs = ["cn", "name", "objectClass", "objectGUID", "whenCreated", "nTSecurityDescriptor", "memberOf"]        print "Testing ldb.search for (&(cn=ldaptestUSer2)(objectClass=user))"        res = ldb.search(self.base_dn, expression="(&(cn=ldaptestUSer2)(objectClass=user))", scope=SCOPE_SUBTREE, attrs=attrs)        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestUSer2)(objectClass=user))")        self.assertEquals(res[0].dn, ("CN=ldaptestuser2,CN=Users," + self.base_dn))        self.assertEquals(res[0]["cn"], "ldaptestuser2")        self.assertEquals(res[0]["name"], "ldaptestuser2")        self.assertEquals(res[0]["objectClass"], ["top", "person", "organizationalPerson", "user"])        self.assertTrue("objectGUID" in res[0])        self.assertTrue("whenCreated" in res[0])        self.assertTrue("nTSecurityDescriptor" in res[0])        self.assertEquals(res[0]["memberOf"][0], ("CN=ldaptestgroup2,CN=Users," + self.base_dn))        attrs = ["cn", "name", "objectClass", "objectGUID", "whenCreated", "nTSecurityDescriptor", "member"]        print "Testing ldb.search for (&(cn=ldaptestgroup2)(objectClass=group))"        res = ldb.search(self.base_dn, expression="(&(cn=ldaptestgroup2)(objectClass=group))", scope=SCOPE_SUBTREE, attrs=attrs)        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestgroup2)(objectClass=group))")        self.assertEquals(res[0].dn, ("CN=ldaptestgroup2,CN=Users," + self.base_dn))        self.assertEquals(res[0]["cn"], "ldaptestgroup2")        self.assertEquals(res[0]["name"], "ldaptestgroup2")        self.assertEquals(res[0]["objectClass"], ["top", "group"])        self.assertTrue("objectGuid" not in res[0])        self.assertTrue("whenCreated" in res[0])        self.assertTrue("nTSecurityDescriptor" in res[0])        self.assertEquals(res[0]["member"], ["CN=ldaptestuser2,CN=Users," + self.base_dn])        ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifyreplace: membermember: CN=ldaptestuser2,CN=Users,""" + self.base_dn + """member: CN=ldaptestutf8user 猫霉茅矛貌脿,CN=Users,""" + self.base_dn + """""")                print "Testing Linked attribute behaviours"        ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifydelete: member""")        ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifyadd: membermember: CN=ldaptestuser2,CN=Users,""" + self.base_dn + """member: CN=ldaptestutf8user 猫霉茅矛貌脿,CN=Users,""" + self.base_dn + """""")                ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifyreplace: member""")                ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifyadd: membermember: CN=ldaptestuser2,CN=Users,""" + self.base_dn + """member: CN=ldaptestutf8user 猫霉茅矛貌脿,CN=Users,""" + self.base_dn + """""")                ldb.modify_ldif("""dn: cn=ldaptestgroup2,cn=users,""" + self.base_dn + """changetype: modifydelete: membermember: CN=ldaptestutf8user 猫霉茅矛貌脿,CN=Users,""" + self.base_dn + """""")                res = ldb.search(self.base_dn, expression="(&(cn=ldaptestgroup2)(objectClass=group))", scope=SCOPE_SUBTREE, attrs=attrs)        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestgroup2)(objectClass=group))")        self.assertEquals(res[0].dn, ("CN=ldaptestgroup2,CN=Users," + self.base_dn))        self.assertEquals(res[0]["member"][0], ("CN=ldaptestuser2,CN=Users," + self.base_dn))        self.assertEquals(len(res[0]["member"]), 1)        ldb.delete(("CN=ldaptestuser2,CN=Users," + self.base_dn))        attrs = ["cn", "name", "objectClass", "objectGUID", "whenCreated", "nTSecurityDescriptor", "member"]        print "Testing ldb.search for (&(cn=ldaptestgroup2)(objectClass=group)) to check linked delete"        res = ldb.search(self.base_dn, expression="(&(cn=ldaptestgroup2)(objectClass=group))", scope=SCOPE_SUBTREE, attrs=attrs)        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestgroup2)(objectClass=group)) to check linked delete")        self.assertEquals(res[0].dn, ("CN=ldaptestgroup2,CN=Users," + self.base_dn))        self.assertTrue("member" not in res[0])        print "Testing ldb.search for (&(cn=ldaptestutf8user 脠脵脡脤脪脌)(objectClass=user))"        res = ldb.search(expression="(&(cn=ldaptestutf8user 脠脵脡脤脪脌)(objectClass=user))")        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestutf8user 脠脵脡脤脪脌)(objectClass=user))")        self.assertEquals(res[0].dn, ("CN=ldaptestutf8user 猫霉茅矛貌脿,CN=Users," + self.base_dn))        self.assertEquals(res[0]["cn"], "ldaptestutf8user 猫霉茅矛貌脿")        self.assertEquals(res[0]["name"], "ldaptestutf8user 猫霉茅矛貌脿")        self.assertEquals(res[0]["objectClass"], ["top", "person", "organizationalPerson", "user"])        self.assertTrue("objectGUID" in res[0])        self.assertTrue("whenCreated" in res[0])        ldb.delete(res[0].dn)        print "Testing ldb.search for (&(cn=ldaptestutf8user2*)(objectClass=user))"        res = ldb.search(expression="(&(cn=ldaptestutf8user2*)(objectClass=user))")        self.assertEquals(len(res), 1, "Could not find (&(cn=ldaptestutf8user2*)(objectClass=user))")        ldb.delete(res[0].dn)        ldb.delete(("CN=ldaptestgroup2,CN=Users," + self.base_dn))        print "Testing ldb.search for (&(cn=ldaptestutf8user2 脠脵脡脤脪脌)(objectClass=user))"        res = ldb.search(expression="(&(cn=ldaptestutf8user 脠脵脡脤脪脌)(objectClass=user))")        #FIXME: self.assert len(res) == 1, "Could not find (expect space collapse, win2k3 fails) (&(cn=ldaptestutf8user2 脠脵脡脤脪脌)(objectClass=user))"        print "Testing that we can't get at the configuration DN from the main search base"        res = ldb.search(self.base_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertEquals(len(res), 0)        print "Testing that we can get at the configuration DN from the main search base on the LDAP port with the 'phantom root' search_options control"        res = ldb.search(self.base_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"], controls=["search_options:1:2"])        self.assertTrue(len(res) > 0)        if gc_ldb is not None:            print "Testing that we can get at the configuration DN from the main search base on the GC port with the search_options control == 0"                        res = gc_ldb.search(self.base_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"], controls=["search_options:1:0"])            self.assertTrue(len(res) > 0)            print "Testing that we do find configuration elements in the global catlog"            res = gc_ldb.search(self.base_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"])            self.assertTrue(len(res) > 0)                    print "Testing that we do find configuration elements and user elements at the same time"            res = gc_ldb.search(self.base_dn, expression="(|(objectClass=crossRef)(objectClass=person))", scope=SCOPE_SUBTREE, attrs=["cn"])            self.assertTrue(len(res) > 0)            print "Testing that we do find configuration elements in the global catlog, with the configuration basedn"            res = gc_ldb.search(self.configuration_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"])            self.assertTrue(len(res) > 0)        print "Testing that we can get at the configuration DN on the main LDAP port"        res = ldb.search(self.configuration_dn, expression="objectClass=crossRef", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0)        print "Testing objectCategory canonacolisation"        res = ldb.search(self.configuration_dn, expression="objectCategory=ntDsDSA", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0, "Didn't find any records with objectCategory=ntDsDSA")        self.assertTrue(len(res) != 0)                res = ldb.search(self.configuration_dn, expression="objectCategory=CN=ntDs-DSA," + self.schema_dn, scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0, "Didn't find any records with objectCategory=CN=ntDs-DSA," + self.schema_dn)        self.assertTrue(len(res) != 0)                print "Testing objectClass attribute order on "+ self.base_dn        res = ldb.search(expression="objectClass=domain", base=self.base_dn,                          scope=SCOPE_BASE, attrs=["objectClass"])        self.assertEquals(len(res), 1)        self.assertEquals(res[0]["objectClass"], ["top", "domain", "domainDNS"])    #  check enumeration        print "Testing ldb.search for objectCategory=person"        res = ldb.search(self.base_dn, expression="objectCategory=person", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0)        print "Testing ldb.search for objectCategory=person with domain scope control"        res = ldb.search(self.base_dn, expression="objectCategory=person", scope=SCOPE_SUBTREE, attrs=["cn"], controls=["domain_scope:1"])        self.assertTrue(len(res) > 0)             print "Testing ldb.search for objectCategory=user"        res = ldb.search(self.base_dn, expression="objectCategory=user", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0)                print "Testing ldb.search for objectCategory=user with domain scope control"        res = ldb.search(self.base_dn, expression="objectCategory=user", scope=SCOPE_SUBTREE, attrs=["cn"], controls=["domain_scope:1"])        self.assertTrue(len(res) > 0)                print "Testing ldb.search for objectCategory=group"        res = ldb.search(self.base_dn, expression="objectCategory=group", scope=SCOPE_SUBTREE, attrs=["cn"])        self.assertTrue(len(res) > 0)        print "Testing ldb.search for objectCategory=group with domain scope control"        res = ldb.search(self.base_dn, expression="objectCategory=group", scope=SCOPE_SUBTREE, attrs=["cn"], controls=["domain_scope:1"])        self.assertTrue(len(res) > 0)class BaseDnTests(unittest.TestCase):    def setUp(self):        self.ldb = ldb    def test_rootdse_attrs(self):        """Testing for all rootDSE attributes"""        res = self.ldb.search(scope=SCOPE_BASE, attrs=[])        self.assertEquals(len(res), 1)    def test_highestcommittedusn(self):        """Testing for highestCommittedUSN"""        res = self.ldb.search("", scope=SCOPE_BASE, attrs=["highestCommittedUSN"])        self.assertEquals(len(res), 1)        self.assertTrue(int(res[0]["highestCommittedUSN"][0]) != 0)    def test_netlogon(self):        """Testing for netlogon via LDAP"""        res = self.ldb.search("", scope=SCOPE_BASE, attrs=["netlogon"])        self.assertEquals(len(res), 0)    def test_netlogon_highestcommitted_usn(self):        """Testing for netlogon and highestCommittedUSN via LDAP"""        res = self.ldb.search("", scope=SCOPE_BASE,                 attrs=["netlogon", "highestCommittedUSN"])        self.assertEquals(len(res), 0)if not "://" in host:    host = "ldap://%s" % hostldb = Ldb(host, credentials=creds, session_info=system_session(), lp=lp)gc_ldb = Ldb("%s:3268" % host, credentials=creds,              session_info=system_session(), lp=lp)runner = SubunitTestRunner()runner.run(unittest.makeSuite(BaseDnTests))runner.run(unittest.makeSuite(BasicTests))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -